我是新来的批处理,但认为这是一个好方法,在部署它之前将我的网站的.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