【发布时间】:2015-11-20 13:56:29
【问题描述】:
我需要处理一天前的文件。因此我使用这个:
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
【问题讨论】:
-
完全不要使用
start,直接像cmd /c 7z.exe .............一样执行7z -
在调用
7z.exe后立即使用||来捕获未成功的实例 -
7z.exe t %%f 属于一起,所以这不起作用
标签: batch-file errorlevel forfiles