Ich möchte eine Batch-Datei haben, die alle Ordner und Dateien in meinem Cache-Ordner für mein drahtloses Toolkit löscht.
Derzeit habe ich Folgendes:
cd "C:\Users\tbrollo\j2mewtk\2.5.2\appdb\RMS"
del *.db
Dadurch werden alle DB-Dateien in meinem RMS- Verzeichnis gelöscht. Ich möchte jedoch alle Elemente aus diesem Verzeichnis löschen. Wie kann ich das machen?
batch-file
batch-processing
user69514
quelle
quelle
del /?
an der Eingabeaufforderung ein. Sie erhalten Informationen zur Verwendung des Tools. In diesem Falldel *.* /s
würde es funktionieren, aber nicht im falschen Verzeichnis!rmdir /s /q c:\users\tbrollo\j2mewtk\2.5.2\appdb\RMS
RMS
Verzeichnis, was möglicherweise nicht beabsichtigt war. (Tatsächlich ist es oft das, was ich nicht will, weil ich dann den ursprünglichen Zeitstempel des Verzeichnisses und alle Berechtigungen, die es hatte, verliere.) In meiner Antwort erfahren Sie, wie Sie den gesamten Inhalt eines Verzeichnisses entfernen, aber das Verzeichnis selbst belassen Ort.Antworten:
del *.*
stattdel *.db
. Das wird alles entfernen.quelle
del . /F /Q
Verwenden:
Erstellen Sie eine Batchdatei
Kopieren Sie den folgenden Text in die Batch-Datei
Es werden alle Dateien und Ordner gelöscht .
quelle
chcp 10000
, ändern Sie zunächst die Codierung in UTF-16(rmdir "%%i" /s/q 2>NUL || del "%%i" /s/q >NUL )
um die Fehler- und Löschmeldungen zu unterdrückenDadurch wird alles aus dem Ordner (und dem Ordner selbst) gelöscht.
quelle
del *.*
löscht nur Dateien, aber keine Unterverzeichnisse. Um den Inhalt eines Verzeichnisses zu zerstören, können Sie dieses Skript verwenden:Die
pushd
Änderungen in dem Verzeichnis, in dem Sie die untergeordneten Elemente löschen möchten. Wenn Sie dannrd
aufgefordert werden, das aktuelle Verzeichnis und alle Unterverzeichnisse zu löschen, ist das Löschen der Unterverzeichnisse erfolgreich, aber das Löschen des aktuellen Verzeichnisses schlägt fehl - weil wir uns darin befinden. Dies erzeugt einen Fehler, der2> NUL
verschluckt. (2 ist der Fehlerstrom).quelle
Ich habe das gerade aus dem zusammengestellt, was morty346 gepostet hat:
Es wird eine schnelle Überprüfung hinzugefügt, ob der in der Variablen definierte Ordner zuerst vorhanden ist, das Verzeichnis in den Ordner geändert und der Inhalt gelöscht.
quelle
Sie können dies mit
del
und dem/S
Flag tun (um anzuweisen, alle Dateien aus allen Unterverzeichnissen zu rekursieren):Der Befehl RD kann ebenfalls verwendet werden. Rekursiv leise ohne Aufforderung löschen:
Rmdir (rd)
quelle
quelle
Versuche Folgendes; Für mich geht das.
Ich habe eine Anwendung, die Daten in meinem Ordner "C: \ tmp" speichert, und das Folgende funktioniert am besten für mich. Es werden nicht einmal Ja oder Nein gefragt , um die Daten zu löschen. Ich habe einen Zeitplan erstellt, der alle 5 Minuten ausgeführt werden soll
quelle
del /q c:\tmp\*.*
, was ungefähr eine Million Mal sicherer ist. Ganz zu schweigencd
davon, dass nur der Pfad geändert wird, nicht das Laufwerk.Besser noch, sagen wir, ich möchte alles unter dem
C:\windows\temp
Ordner entfernen .quelle
c:\windows\temp
. Ich glaube nicht, dass dies die ursprüngliche Frage war.Sie können Robocopy verwenden, um einen leeren Ordner in den Ordner zu spiegeln, den Sie löschen.
Es funktioniert auch, wenn Sie den eigentlichen Ordner nicht entfernen oder neu erstellen können.
Es ist ein vorhandenes leeres Verzeichnis erforderlich.
quelle
/MIR :: MIRror a directory tree (equivalent to /E plus /PURGE).
bin ich mir also ziemlich sicher, dass/E
das überflüssig ist.Verwenden
Diese Version wird gelöscht, ohne zu fragen:
Beispiel:
Dies wird klar
C:\foo1\foo\foo\foo3
.(Ich möchte die Antwort von Abdullah Sabouin erwähnen . Es gab eine Verwechslung damit, dass ich ihn kopiert habe. Ich habe seinen Beitrag nicht bemerkt. Ich möchte Melpomene dafür danken, dass er auf Fehler hingewiesen hat!)
quelle
rmdir foo
Fehler aus, wennfoo
kein leeres Verzeichnis ist.Sie können nicht alles entweder
rmdir
oderdel
alleine löschen :rmdir /s /q
akzeptiert keine Platzhalterparameter. Alsormdir /s /q *
wird Fehler.del /s /f /q
löscht alle Dateien, aber leere Unterverzeichnisse bleiben erhalten.Meine bevorzugte Lösung (wie ich sie in vielen anderen Batch-Dateien verwendet habe) ist:
quelle
Nur eine modifizierte Version von GregMs Antwort :
quelle
Sie waren auf dem richtigen Weg. Fügen Sie einfach Code hinzu, um den Ordner hinzuzufügen, der wieder gelöscht wird.
quelle
Sie sollten diesen Befehl ausführen, um alle Dateien zu löschen:
quelle
del *.*
(mit einem Leerzeichen) sein