Windows 7 の TEMP フォルダー内のアイテムを削除するスクリプトを作成しようとしています。30 日以上経過したファイルのみを削除したいです。システムの環境変数にTESTTEMPとして設定したフォルダーでテストを行っています。
次のようなスクリプトがあります。
forfiles /p %TESTTEMP% /s /d -30 /c "cmd /c IF @ISDIR==FALSE del @FILE /q"
forfiles /p %TESTTEMP% /s /c "cmd /c IF @ISDIR==TRUE rmdir @FILE"
この背後にある私のロジックは、ファイルが 30 日より古い場合、プロセスは最初に TESTTEMP ディレクトリ内のすべてのファイルを削除し、すべてのサブディレクトリをチェックインする必要があるというものです。次に、残りのファイルを確認し、空のディレクトリである場合は削除します。
このスクリプトは完全に機能します。削除したいすべてのファイルが削除され、残るはずのファイルが残ります。ただし、このバッチファイルを実行すると、コマンドに問題があり、削除したばかりのディレクトリが見つからないThe system cannot find the file specified.
と思われるというエラーが表示されることに気付きました...rmdir
スクリプトは私がやりたいことを実行しているように見えるので、これは心配する必要がありますか? さらに良いことに、自分で何が起こっているのかを把握できるように、どのファイルが見つからないかを表示する方法はありますか?
助けてくれてありがとう!
(参考までに、すべてのファイルが 30 日以上経過していると仮定して、バッチ ファイルの実行前後のフォルダー構造を次に示します:)
前:
-TestTemp
-More Test
testfile1.txt
testfile2.txt
testfile3.txt
testfile1.txt
testfile2.txt
testfile3.txt
後:
-TestTemp