3

我需要处理超过一天的文件。因此我使用这个:

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

现在我想检查一下 7z.exe 的进度是否成功。如何errorlevel在 forefiles 命令中获取该命令?有没有可能?

我已经尝试过以下不起作用的方法。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
4

1 回答 1

1

假设7z.exe确实提供了一个ErrorLevel,我认为条件命令分隔符查询的是ErrorLevelofcmd而不是 of 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

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

于 2015-11-20T15:14:31.473 回答