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