批处理循环中的.less编译过早地结束批处理脚本

时间:2013-03-24 23:22:04

标签: css batch-file less

我是批处理的新手,但我发现在部署之前将我的网站的.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! 循环中较少编译后没有任何脚本?

3 个答案:

答案 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"
...