我需要处理一天以上的文件。因此,我使用:
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
,我认为条件命令分隔符查询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
正如您可能已经注意到的,我还修复了给定路径的一些引用问题。