我正在嘗試編寫一個腳本,用於刪除Windows 7中TEMP文件夾中的項目。我只希望它刪除30天或更早的文件。我正在測試一個我已經在系統環境變量中設置爲TESTTEMP的文件夾。forfile在刪除文件夾時出錯
我的腳本如下:
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"
我這背後的邏輯是,這個過程應該先刪除TESTTEMP目錄中的所有文件,如果該文件是超過30天,並檢查所有子目錄。然後我檢查其餘的文件,如果它是空的目錄,請將其刪除。
這個腳本完美地工作 - 我想刪除的所有文件都被刪除,而那些應該保留的文件仍然存在。然而,我注意到,當我運行這個批處理文件,我得到了錯誤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
我接受這個答案,因爲它幫助我弄清楚如何顯示哪個文件是「未找到」。但是,我仍然不明白爲什麼我會從這個錯誤開始。 –