我需要处理一天以上的文件。因此,我使用:

forfiles -m %%~nxf /C "cmd /c start /wait /MIN 7z.exe t %%f" /d +1

现在我想检查7z.exe的进程是否成功。如何获取前文命令中的命令的错误级别?有可能吗?
我已经试过用不起作用的方法了。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

最佳答案

假设7z.exe确实传递了ErrorLevel,我认为条件命令分隔符查询ErrorLevelcmd,而不是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

正如您可能已经注意到的,我还修复了给定路径的一些引用问题。

10-05 22:48
查看更多