Verzeichnis mit unbekanntem Pfad per Batch löschen?
Hallo Leutz !
Tolles Forum habt Ihr hier. Bin beim Googeln immer wieder zu Beiträgen auf eurer Forum verwiesen worden.
Ich tue mich allerdings gerade ziehmlich schwer genügend Informationen zu meinem Problem zusammen zu suchen.
Meine Batch Kenntnisse sind zudem nicht gerade überragend (eher mies!).
Also folgendes Problem:
Ich möchte per Batchfile einen Ordner auf meiner externen Festplatte bei Systemstart löschen.
Der Ordner dessen Name bekannt ist enthält Unterordner und Dateien (teilweise schreibgeschützt und versteckt).
Leider ist der genaue Pfad des Ordners auf der Platte nicht bekannt so das dieser erst gesucht werden muß oder eine Wildcard verwendet werden muß.
Sieht in etwa so aus:
D:\Directory1\Directory2\*nicht bekannt*\Mülldaten
Der zu löschende Ordner soll komplett ohne Nachfrage im Quiet-Mode gelöscht werden.
Achso mein OS ist XP-Pro.
Hab schon einige Hinweise in anderen Beiträgen gefunden allerdings raffe ich es nicht auf mein Problem zu übertragen.
Hab nen Batch fertig um ein Verzeichnis zu löschen allerdings fehlt dabei die Sache mit dem unbekannten Pfad:
rmdir "D:\Directory1\Directory2\Directory3\Directory4\Mülldaten" /s /q
Bin für jeden Tip dankbar
robo
Tolles Forum habt Ihr hier. Bin beim Googeln immer wieder zu Beiträgen auf eurer Forum verwiesen worden.
Ich tue mich allerdings gerade ziehmlich schwer genügend Informationen zu meinem Problem zusammen zu suchen.
Meine Batch Kenntnisse sind zudem nicht gerade überragend (eher mies!).
Also folgendes Problem:
Ich möchte per Batchfile einen Ordner auf meiner externen Festplatte bei Systemstart löschen.
Der Ordner dessen Name bekannt ist enthält Unterordner und Dateien (teilweise schreibgeschützt und versteckt).
Leider ist der genaue Pfad des Ordners auf der Platte nicht bekannt so das dieser erst gesucht werden muß oder eine Wildcard verwendet werden muß.
Sieht in etwa so aus:
D:\Directory1\Directory2\*nicht bekannt*\Mülldaten
Der zu löschende Ordner soll komplett ohne Nachfrage im Quiet-Mode gelöscht werden.
Achso mein OS ist XP-Pro.
Hab schon einige Hinweise in anderen Beiträgen gefunden allerdings raffe ich es nicht auf mein Problem zu übertragen.
Hab nen Batch fertig um ein Verzeichnis zu löschen allerdings fehlt dabei die Sache mit dem unbekannten Pfad:
rmdir "D:\Directory1\Directory2\Directory3\Directory4\Mülldaten" /s /q
Bin für jeden Tip dankbar
robo
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 105867
Url: https://administrator.de/contentid/105867
Ausgedruckt am: 22.11.2024 um 14:11 Uhr
4 Kommentare
Neuester Kommentar
jo, den Ansatz würde ich auch wählen. Für den Anfänger aber noch ein wenig Erläuterung, nicht getestet:
/code
::springe in das bekannte Verzeichnis, in dem das Verzeichnis Mülldaten liegt
pushd "D:\Directory1\Directory2"
::Der Befehl meines Vorredners, etwas angepasst:
::Er sucht alle Verzeichnisse, die "Mülldaten" heißen. Dann gibt er den Befehl aus, den er zum löschen verwenden würde
for /F %%i in ('dir /B /AD /S Mülldaten') do @echo rmdir /s /q "%%i"
::wieder zurückspringen, in das Verzeichnis, aus dem die Batch aufgerufen wurde..
popd
/code
wenn du das echo löscht, führt er den Befehl aus. Die doppelten %-Zeichen sind in Batches nötig. Und Vorsicht: er löscht wirklich alle Verzeichnisse, die unterhalb von "D:\Directory1\Directory2" "Mülldaten" heißen, egal, wie tief sie liegen.
gruß
/code
::springe in das bekannte Verzeichnis, in dem das Verzeichnis Mülldaten liegt
pushd "D:\Directory1\Directory2"
::Der Befehl meines Vorredners, etwas angepasst:
::Er sucht alle Verzeichnisse, die "Mülldaten" heißen. Dann gibt er den Befehl aus, den er zum löschen verwenden würde
for /F %%i in ('dir /B /AD /S Mülldaten') do @echo rmdir /s /q "%%i"
::wieder zurückspringen, in das Verzeichnis, aus dem die Batch aufgerufen wurde..
popd
/code
wenn du das echo löscht, führt er den Befehl aus. Die doppelten %-Zeichen sind in Batches nötig. Und Vorsicht: er löscht wirklich alle Verzeichnisse, die unterhalb von "D:\Directory1\Directory2" "Mülldaten" heißen, egal, wie tief sie liegen.
gruß
Nimm den Backslash und die beiden Punkte weg. Ich will versuchen es zu erläutern (Ist ja nicht so, das ich nicht kritikfähig wäre):
das \.. am Ende des Befehls bewirkt, dass der Befehl auf das Verzeichnis, welches oberhalb von Mülldaten liegt , angewendet wird.
Dieser Befehl löscht Directory4 inklusive aller Unterverzeichnisse (z.B. auch Mülldaten)
Dieser Befehl sollte nun nur den Ordner Mülldaten löschen.
ebenfalls ungetestet, ohne Schusswaffen und Gewähr, und selbstverständlich auf eigene Verantwortung
exit
GS
das \.. am Ende des Befehls bewirkt, dass der Befehl auf das Verzeichnis, welches oberhalb von Mülldaten liegt , angewendet wird.
Beispiel
rmdir "D:\Directory1\Directory2\Directory3\Directory4\Mülldaten\.." /s /q
neuer Code
for /F %i in ('dir /B /AD /S D:\Directory1\Directory2\Mülldaten') do @echo rmdir /s /q %i
ebenfalls ungetestet, ohne Schusswaffen und Gewähr, und selbstverständlich auf eigene Verantwortung
exit
GS