
我正在嘗試使用任務計劃程式每晚刪除所有資料夾和文件。我在操作中使用以下命令:
程序/腳本:forfiles
參數:/S /P C:\Users\david\AppData\Roaming\Apple Computer\MobileSync\Backup /C "cmd /c if @isdir==TRUE rd /s /q @file"
這不是刪除任何文件或資料夾。在這個例子中我缺少什麼?
這似乎有效,但確實會引發錯誤: /S /P "C:\Users\Sales\AppData\Roaming\Apple Computer\MobileSync\Backup" /C "cmd /c rd /s /q @file
錯誤:
C:\Users\david>forfiles /S /P "C:\Users\david\AppData\Roaming\Apple Computer\MobileSync\Backup" /C "cmd /c rd /s /q @file
ERROR: The system cannot find the file specified.
C:\Users\david>
答案1
當您打算用“rd /s /q”破壞所有內容時,為什麼要搜尋子目錄?
你什麼可能(可能)看到的是這樣的:
- 福菲萊斯建立要使用的文件列表:比如說......”C:\這個“ 和 ”C:\這個\那個」
- 你得到 ”C:\這個「交給你了
- 你刪除“C:\這個「 遞迴地
- 你得到 ”C:\這個\那個」遞給你。
- 刪除它時會出現錯誤,因為它不存在。
另一種情況也可能發生!枚舉樹時可能會開啟一個檔案句柄,因此當您嘗試刪除“C:\這個“,”C:\這個\那個「仍然被 forfiles 鎖定打開。我不知道 forfiles 是否是為了規避這個問題而寫的,但我有一定編程時遇到這個。
建議:刪除 /S福菲萊斯(最好)或添加“等等等等......如果存在@文件「等等等等(不是最好的)。