我是批处理的新手,但我发现在部署之前将我的网站的.less文件编译成.css是个好方法。
不幸的是,在批处理文件中使用for
循环来查找我的所有.less文件并将它们编译成.css等效文件后,即使我在{{{{{{{{ 1}}循环。
我的批处理脚本包含以下内容:
for
当我运行它时,输出显示所有.less编译发生,但“到达批处理脚本的末尾!”字符串永远不会显示,因此,在.less编译之后我想要采取的任何操作都不会发生。
为什么在执行@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!
循环中较少编译后没有任何脚本?
答案 0 :(得分:3)
我遇到了同样的问题,不得不将lessc
更改为call lessc
,然后我的脚本过早地停止了结束。这是一个SO链接,引导我尝试它:Why does calling a nested batch file without prepending "call" to the line exit the parent batch file?基本上它表示你需要在执行嵌套批处理文件时使用call
,以便在子文件时控件将返回到父文件已完成执行。
答案 1 :(得分:2)
您的路径中是否有lessc.bat
?
如果是,您需要CALL lessc...
<小时/> 是否有“奇怪”的文件名?正在处理?
也许......做 ECHO %% i&amp; lessc -x %% i&gt; %%〜PI %%〜ni.css
可能会揭示更多...
答案 2 :(得分:1)
试试这个:
...
for /r %%i in (*.less) do lessc.exe -x "%%~i" "%%~dpni.css"
...