0
我使用Windows批处理文件比较2个文件夹中的文件列表。它打印结果是否通过/失败。如何获得FOR LOOP中每个命令的ERRORLEVEL?
当前工作批处理文件:
for /F "tokens=*" %%f in (list.txt) do compare Folder1\%%f.png Folder2\%%f.png
如果有3个文件,运行此命令后的输出应该是这样的:
PASS
FAIL
PASS
如果我在这里交相辉映%ERRORLEVEL% ,它会返回0,因为for循环运行良好。
echo %ERRORLEVEL%
0
我的要求
响彻每一个命令,而不是循环的结果。
我的预期输出
0
1
0
如何更改批处理文件来实现这一目标?
这是行不通的,因为:1.您需要[延迟扩展](http://ss64.com/nt/delayedexpansion.html)来获得Error!ity!的ErrorLevel;否则,返回读取整个命令行时出现的ErrorLevel; 2. ['&&'](http://ss64.com/nt/syntax-conditional.html)可以防止返回非零的ErrorLevels,您必须使用'&'; – aschipfl
@aschipfl,对不起,俯瞰。我已经更新了答案并添加了文档。感谢您指出。 – sohaib
我试过了。获取下面的输出: PASS !ERRORLEVEL! 失败 !ERRORLEVEL! PASS !ERRORLEVEL! – InsecureNoob