我需要处理超过一天的文件。因此我用这个:
forfiles -m %%~nxf /C "cmd /c start /wait /MIN 7z.exe t %%f" /d +1
现在我想检查7z.exe的进度是否成功。如何在forefiles命令中获取命令的 errorlevel ?有可能吗?
我已经尝试过以下不起作用的方法。 Errorlevel 总是返回0,即使我使用了损坏的文件,也应该返回错误(2)。
forfiles -m %%~nxf /C "cmd /c start /wait /MIN 7z.exe t %%f && echo ok || echo delete %%f" /d +1
forfiles -m %%~nxf /C "cmd /c start /wait /MIN 7z.exe t %%f && if errorlevel 2 (DEL %%f)" /d +1
答案 0 :(得分:1)
假设7z.exe
确实传递了ErrorLevel
,我认为条件命令分隔符查询ErrorLevel
cmd
而不是7z.exe
。以下应该有效:
forfiles /M "%%~nxf" /C "cmd /C 0x22start /WAIT /MIN 7z.exe t 0x22%%~f0x22 && echo ok || echo delete 0x22%%~f0x220x22" /D +1
或者你也可以在没有start
的情况下这样做:
forfiles /M "%%~nxf" /C "cmd /C 0x227z.exe t 0x22%%~f0x22 && echo ok || echo delete 0x22%%~f0x220x22" /D +1
您可能已经注意到,我还修复了给定路径的一些引用问题。