我在批处理文件中运行命令[仅供参考:此命令运行生成不同输出的python脚本] 代码如下:
:meshfunc
echo "starting command"
echo "!inst_dir!runME.bat -parameter1 !parameter2! !parameter1v! -script pythonscript.py"
echo start_time=!time!
for /F "delims=" %%i IN ('"!inst_dir!runME.bat -parameter1 !parameter2! !parameter1v! -script pythonscript.py"') DO (
set cmdline=%%i
echo currentENDline=!cmdline!
)
EXIT /B 0
PS:由于显而易见的原因,我已经剥离了输出线,但它们在这里并不重要
所以我的问题是: 如果我在没有for循环的情况下运行相同的命令,它将在30秒内完成而不会在结束时发出警告。 但是,如果我在for循环中运行它,它需要更长的时间约3分钟,并在结束时发出警告 为什么我最后会收到警告,如图所示。为什么会这样?
答案 0 :(得分:0)
因为for /F
执行括号中的命令并将其所有输出存储在临时磁盘文件中,直到命令结束;之后,它开始重复执行命令组。这样,如果输出非常大,临时文件需要增长几次,这样的过程需要一些时间......将输出重定向到磁盘文件然后用{{处理这样的文件应该更快1}}:
for /F