Warum zeigt `rd /S` „Verzeichnis nicht leer“ an?

Warum zeigt `rd /S` „Verzeichnis nicht leer“ an?

Ich versuche, die Ausführung rd /Sin einem nicht leeren Verzeichnis durchzuführen, und manchmal funktioniert es einwandfrei, manchmal wird die Meldung „Das Verzeichnis ist nicht leer“ angezeigt. Warum erhalte ich diesen Fehler? Gibt es eine zuverlässige Möglichkeit, einen Ordner voller Dateien und Unterverzeichnisse unter Windows zu entfernen? PowerShell hat Remove-Itemebenfalls dieses Problem.

Antwort1

Möglicherweise scannt der lokale Antiviren- oder Indizierungsdienst die neu kopierten Dateien und sperrt sie, damit sie nicht sofort gelöscht werden.

Ich würde eine Verzögerung programmieren und es bei einem Fehler erneut versuchen.

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!

Antwort2

Es ist sehr wahrscheinlich, dass der nicht gelöschte leere Ordner einige versteckte Dateien enthält oder dass jemand den Ordner noch verwendet.

Antwort3

Versuche dies:

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

Antwort4

rd /SIch versuche , in einem nicht leeren Verzeichnis auszuführen und manchmal funktioniert es einwandfrei, manchmal meldet esDas Verzeichnis ist nicht leer. Warum erhalte ich diesen Fehler?

Weil es versteckte Dateien oder Dateien enthält, die andere Berechtigungen erfordern.

Gibt es eine zuverlässige Möglichkeit, einen Ordner voller Dateien und Unterverzeichnisse unter Windows zu löschen?

Schauen Sie in den Ordner, um zu sehenWasDateien übrig sind und prüfen Sie, ob Sie diese manuell löschen können. Wenn nicht, benötigen Sie möglicherweise andere Berechtigungen. Versuchen Sie, es von einemEingabeaufforderung mit erhöhten Rechten.

Auch die Funktion „Remove Item“ von PowerShell ist von diesem Problem betroffen.

Wenn es sich nicht um ein Berechtigungsproblem handelt, können Sie es erzwingen:Remove-Item -Recurse -Force …

verwandte Informationen