為什麼 `rd /S` 說「目錄不為空」?

為什麼 `rd /S` 說「目錄不為空」?

我試圖rd /S在非空目錄上執行,有時,它工作正常,有時,它報告“目錄不為空”。為什麼我會收到此錯誤?有沒有可靠的方法來刪除 Windows 下充滿檔案和子目錄的資料夾? PowerShellRemove-Item也遇到這個問題。

答案1

可能是本機防毒或索引服務掃描並鎖定新複製的檔案不被立即刪除。

我會編程延遲並在失敗時重試。

for (i = 1 to 10 etc...)
{
  try to remove directory
  if directory does not exist, break out of loop
  wait a second
}
if directory still exists, abort!

答案2

未刪除的空資料夾很可能包含一些隱藏文件,或者有人仍在使用該文件夾。

答案3

嘗試這個:

del c:\test\*.* /Q
rmdir c:\test /Q

答案4

我試圖rd /S在非空目錄上執行,有時,它工作正常,有時,它會報告該目錄不為空。為什麼我會收到此錯誤?

因為它包含隱藏檔案或需要不同權限的檔案。

有沒有可靠的方法來刪除 Windows 下充滿檔案和子目錄的資料夾?

查看資料夾裡面可以看到什麼留下文件,檢查是否可以手動刪除它們。如果沒有,您可能需要不同的權限。嘗試從提升命令提示符

PowerShell 的Remove-Item 也存在這個問題。

如果不是權限問題,可以強制執行:Remove-Item -Recurse -Force …

相關內容