Ich möchte den gesamten Inhalt eines bestimmten Ordners unter Windows 7 über eine Batch-Datei löschen. Mein Problem ist, dass "del" oder "erase" nur die Dateien löscht, nicht die Ordner und "rmdir" oder "rd" immer den angegebenen Ordner mit seinem Inhalt löscht, aber ich möchte nur den Inhalt löschen, nicht den Ordner selbst . Ich habe den Befehl ' rmdir /S /Q "C:\Share\*"
' ausprobiert , wodurch ich einen Syntaxfehler bekam.
Was ist der richtige Weg, um dies zu tun?
Ich arbeite unter Windows 7 Professional 64-Bit und habe Administratorrechte.
quelle
del
ist nicht nötig.rd/s/q
löscht sowohl Dateien als auch Unterordner.del
ist hauptsächlich für alle dateien im root ordner da, könnte aber den rekursionsschalter entfernen.Sie erhalten einen "Syntaxfehler", weil
rmdir
nur vollständige Namen akzeptiert werden, keine Platzhalter. (Incmd.exe
wird die Platzhaltererweiterung den einzelnen Programmen überlassen, nicht allen.)Wenn Sie viele Verzeichnisse haben, die mit beginnen
Share...
, verwenden Sie einefor
Schleife.quelle
Versuchen Sie dies an einer Eingabeaufforderung:
quelle
Wie wäre es mit ?
BEARBEITEN: Diese Lösung ist natürlich nur dann anwendbar, wenn Sie eine vorübergehende Abwesenheit eines Ordners tolerieren können.
quelle
for /f
in ähnlichen Fällen.Dies funktioniert nicht, wenn die Unterverzeichnisse andere Verzeichnisse enthalten, die Leerzeichen enthalten.
Damit dies funktioniert, musste ich die letzte Zeichenfolge wie folgt zitieren
Anscheinend bewirkt dies, dass der Befehl an der angegebenen Zeichenfolge und nicht nur an der Zeichenfolge selbst arbeitet.
quelle
Ich würde dies in dem Ordner versuchen, in dem alle Unterordner gelöscht werden sollen, aber der Stammordner (und die Dateien im Stammordner) bleiben unverändert: für / D% v in (*) do rd / s / q% v
for / D vergleicht Verzeichnisse und rd / s / q löscht jeweils ein Verzeichnis
quelle
einfach:
rmdir / s / q "Pfad"
mkdir "Pfad"
quelle