Löschen Sie einen Ordner in Windows mithilfe der Befehlszeile vollständig
Ich muss einen Ordner löschen, der andere Ordner und Dateien enthält. Ich habe die Befehle del
und rmdir
ausprobiert, aber manchmal schlagen sie mit einigen Fehlerzeilen fehl: [PATH]: The directory isn't empty.
Gibt es eine gute alternative?
8 answers
Das passiert mir oft mit meinen automatisierten Build-Skripten.
Ich denke, der Grund könnte eine Anwendung sein, bei der eine Datei in diesem Verzeichnis mit "share delete"geöffnet ist. Dh die Anwendung ermöglicht das Löschen der Datei (weshalb ich feststelle, dass der DeleteFile-Aufruf nicht fehlschlägt), aber die Datei verschwindet erst, nachdem die Anwendung ihr Handle geschlossen hat.
Das bedeutet, dass die Datei möglicherweise noch vorhanden ist, wenn der Befehl rmdir
versucht, den Ordner zu löschen, daher die Fehlermeldung. Kurz danach schließt die Anwendung ihr Handle, die Datei verschwindet, und wenn Sie den Ordner überprüfen, um zu sehen, welche Datei rmdir
darüber gesprochen hat, ist sie leer.
Zumindest ist das meine Theorie.
Die von Harry Johnston vorgeschlagene Problemumgehung sieht gut aus. Nur würde ich eine Pause zwischen den Befehlen rmdir
einfügen. Natürlich hat Windows keinen leicht skriptfähigen" Pause " - Befehl (Korrektur: alte Windows-Versionen nicht, neuere haben-siehe Kommentare). Aber wenn die Granularität ist genug kann man ping
verwenden, um eine Pause zu erstellen:
ping -n {desired_delay_in_seconds + 1} 127.0.0.1 >nul
Also insgesamt:
rd /s /q foo
:: retry once
if exist foo (
:: clear errorlevel
cmd /c
:: pause
ping -n 2 127.0.0.1 >nul
:: retry
rd /s /q foo
)
:: retry yet again
if exist foo (
cmd /c
ping -n 2 127.0.0.1 >nul
rd /s /q foo
)
:: give up
if exist foo {panic}
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-06-24 00:52:40
Versuche:
rmdir /S your_directory
Oder:
rmdir /S /Q your_directory
Um Bestätigungsnachrichten zu überspringen.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-07-16 16:30:16
Möglicherweise haben Sie einige schreibgeschützte Dateien, Sie können die Option del / F verwenden, um sie mit
del /S /F your_directory
rmdir your_directory
Sie könnten auch einige versteckte Dateien haben und wenn Sie wirklich sicher sind, dass Sie sie löschen möchten, können Sie dies mit
del /S /F /AH your_directory
rmdir your_directory
Wenn dies immer noch fehlschlägt, haben Sie entweder keine Berechtigung zum Löschen einiger Dateien oder einige der Dateien werden noch verwendet.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-01-17 16:27:07
Ich glaube, es gibt einen Fehler in Windows 7 (und vielleicht anderen Versionen), der manchmal dieses Symptom verursacht; oder es könnte ein Fehler in Software von Drittanbietern sein. (Haben Sie Symantec Endpoint Protection zufällig installiert?)
Jedenfalls bin ich ziemlich oft darauf gestoßen. In den meisten Fällen kann das Problem behoben werden, indem rd /s /q
zwei-oder dreimal hintereinander ausgeführt wird.
Wenn sich dies in einer Batchdatei befindet, können Sie Folgendes tun:
rd /s /q foo
if exist foo rd /s /q foo
if exist foo rd /s /q foo
if exist foo echo Help! & pause
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-01-17 22:34:36
Verwenden Sie del
für die darin enthaltenen Dateien und dann rmdir
, um den Ordner zu entfernen.
Um die Methode rmdir
auch zum Entfernen aller Dateien zu verwenden, verwenden Sie den Schalter /S
vor dem Verzeichnisnamen und /Q
, um die Aufforderung zum Löschen zu unterdrücken. Dies ist der beste Weg, da Sie keine Dateien verpassen. Seien Sie jedoch vorsichtig mit dem /Q-Schalter, da er Sie nicht vor System-oder versteckten Dateiattributen warnt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-01-17 17:32:53
Wenn Sie node verwenden, können Sie die Abhängigkeit rimraf wie folgt verwenden:
Führen Sie install: npm install rimraf -g
Ordner löschen: rimraf SourceFolder
Das hat mir geholfen, als ich den Fehler bekam:
Die Quelldateinamen sind größer als vom Dateisystem unterstützt
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-12-01 22:15:41
In älteren Windows-Versionen (DOS, Windows 95/98 / ME) entspricht DELTREE
RM
oder RMDIR
. Ich verwende DELTREE
auf meiner Windows 7-Workstation in Batch-Dateien jedoch einwandfrei.
Deletes a directory and all the subdirectories and files in it.
To delete one or more files and directories:
DELTREE [/Y] [drive:]path [[drive:]path[...]]
/Y Suppresses prompting to confirm you want to delete
the subdirectory.
[drive:]path Specifies the name of the directory you want to delete.
Note: Use DELTREE cautiously. Every file and subdirectory within the
specified directory will be deleted.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2016-06-24 18:30:12
Ich denke, du kannst es so benutzen:
msg*your file is going to delete
pause
del/s /q "C:\Users\Rd\Desktop\New folder (2)\"
rmdir /s /q "C:\Users\Rd\Desktop\New folder (2)\"
mkdir "C:\Users\Rd\Desktop\New folder (2)"
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-05-27 15:58:51