3

1 日以上前のファイルを処理する必要があります。したがって、私はこれを使用します:

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

ここで、7z.exe の進行が成功したかどうかを確認したいと思います。errorlevelforefiles コマンド内のコマンドを取得するにはどうすればよいですか? 可能性はありますか?

私はすでにうまくいかなかった次の方法を試しました。errorlevelエラー (2) を返すはずの壊れたファイルを使用しても、常に 0 を返します。

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を実際に配信すると仮定すると、条件付きコマンドセパレーターはofではなく ofをErrorLevel照会すると思います。以下が機能するはずです。ErrorLevelcmd7z.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 に答える