Windows命令行解释器具有FOR命令,该命令能够解析给定命令的输出并为输出的每一行执行循环,例如:
FOR /F %%i IN ('DIR .') DO echo %i # Outputs each file name
命令(DIR .
)是通过子命令行执行的cmd /C <command> <command-arguments>
,但是,/D
未指定该参数...如果用户具有带有输出(例如echo或cls)的AutoRun命令,这将导致奇怪的行为。
有没有办法强制FOR通过执行命令cmd /C /D <command> <command-arguments>
?
一个非常简单的解决方案是在命令中使用文件for /F
而不是命令。这样,我们仅模拟for /F
命令的内部操作,但是显式地执行每个步骤:1.执行命令并将其输出存储在临时文本文件中。2.处理临时文件中的所有行。3.删除文件。
DIR . > TempFile.txt
FOR /F %%i IN (TempFile.txt) DO echo %%i
DEL TempFile.txt
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句