我是新來的批處理,但認爲這是一個好方法,在部署它之前將我的網站的.less文件編譯爲.css。不幸的是,在批處理文件中使用For循環來查找所有.less文件並將它們編譯爲它們的.css等效文件後,即使在For循環後面有更多命令,我的腳本也會停止執行。。批處理for循環結束批處理腳本過早編譯
我的批處理腳本包含以下內容:「達到了批處理腳本結束」
@echo off
rmdir c:\code\releaseDirectory /s /q
echo d | xcopy /d c:\code\devDirectory c:\code\releaseDirectory /s
cd c:\code\releaseDirectory
for /r %%i in (*.less) do echo %%i
for /r %%i in (*.less) do lessc -x %%i > %%~pi%%~ni.css
echo reached the end of the batch script!
當我運行此,輸出顯示所有.LESS的編譯發生,但字符串永遠不會顯示,因此,在.less編譯之後我想要採取的任何操作都不會發生。
任何想法爲什麼在for循環中少編譯後的腳本沒有執行?在此先感謝您花時間看看這個。
對不起,lessc是用於將.less文件編譯爲.css文件的.Less編譯器。 http://lesscss.org/#usage – 2013-03-25 00:22:41
在添加額外的echo並將批處理腳本重定向到.txt文件後,for-loop的每行輸出看起來像是'c:\ Code \ releaseDirectory> echo c :\ Code \ releaseDirectory \ styles \ common.less&lessc -xc:\Code \ releaseDirectory \ styles \ common.less 1> \Code \ releaseDirectory \ styles \ common.css c:\Code \ releaseDirectory \ styles \ common。除了for循環的第一次迭代外,它只輸出'c:\ Code \ releaseDirectory \ styles \ about.less'。第一次迭代只會顯示出某種錯誤嗎? – 2013-03-25 00:55:01
可能性更大。我建議你嘗試更改爲cd c:\ code \ releaseDirectory並從提示符中嘗試lessc -xc:\ Code \ releaseDirectory \ styles \ about.less> \ Code \ releaseDirectory \ styles \ about.css,並查看內容發生。也許實際上刪除'> ...'部分,並讓輸出顯示在屏幕上。 **順便說一句**'%%〜pni.css'會和'%%〜pi %%〜ni'一樣正常工作 – Magoo 2013-03-25 01:18:54