Per Batch Unterordner inklusive Dateien löschen

O

okniloso

Gast
Hallo zusammen,
ich suche eine Möglichkeit Unterordner mit Inhalt per Batch zu löschen.

Unter C:\temp, gibt es die Unterordner 1, 2, 3, 4, 5.

Unter C:\temp, gibt es eine Datei (container.dat), die darf nicht gelöscht werden.

Ich möchte mittels Batch die Ordner Unterhalb von c:\temp löschen, will aber,
das der temp Ordner erhalten bleibt.

Die Ordner 1,2,3,4,5 sind nicht leer.

Leider habe ich dazu keine Lösung gefunden.

Könnt ihr mir helfen?

Viele Grüße
 
Heißen die wirklich 1,2,3,4,5? oder sind das nur platzhalternamen.
 
rmdir c:\temp\1 /s
rmdir c:\temp\2 /s
rmdir c:\temp\3 /s
rmdir c:\temp\4 /s
rmdir c:\temp\5 /s
 
- neues Verzeichnis erstellen
- container.dat in das neue Verzeichnis verschieben
- temp komplett löschen
- neues Verzeichnis in temp umbenennen
 
  • Gefällt mir
Reaktionen: the_nobs
Oder als PowerShell Einzeiler:
Code:
Get-ChildItem C:\temp\ -Directory | Remove-Item -Force -Recurse
Löscht alle Verzeichnisse unterhalb C:\temp.
 
Hier als Powershell:
PowerShell:
Remove-Item -Path "C:\Temp\*" -Exclude "container.dat " -Recurse

Löscht alles in Temp bis auf die containter.dat
 
  • Gefällt mir
Reaktionen: zazie und miepel
Code:
for /f "delims=" %%x in ('dir /AD /B C:\temp') do ( rmdir /S /Q "%%x" )
via Batch

oder

Code:
for /f "delims=" %x in ('dir /AD /B C:\temp') do ( rmdir /S /Q "%x" )
per Kommandozeile. Ist halt umständlicher.
 
Zuletzt bearbeitet: (echo is natürlich überflüssig...)
powershell "Remove-Item -Path 'C:\Temp\*' -Exclude 'container.dat' -Recurse"

geht auch via batch
 
Super danke.
Ein kleines Verständnisproblem habe ich leider noch.

Wie müsste der Befehl für meine Situation aussehen?
Wo muss ich meinen Pfad c:\temp in dem Code
FOR /D %%f in (*) DO rd /S/Q %%f
reinschreiben?


Sorry, bin da noch am Lernen.
 
Also ich empfehle dir direkt auf die Powershell zu gehen. Die kann auch für die Zukunft wesentlich mehr und ist zumindest meiner Meinung nach wesentlich einfacher zu handhaben. Vor allem kann man da ohne Probleme komplette Programme mit schreiben und es gibt sogar direkt unter Windows eine IDE dafür.

Auch in Sachen Sicherheit ist die Powershell sehr viel weiter. Dokumentationsmäßig ist die übrigens auch wesentlich besser gepflegt von MS.
 
okniloso schrieb:
Wo muss ich meinen Pfad c:\temp in dem Code
FOR /D %%f in (*) DO rd /S/Q %%f
reinschreiben?
Ich habe den code so geschrieben das er im Verzeichniss c:\temp aufgerufen wird
bzw. den code in eine batdatei "removedirs.bat" reinstecken
und diese Datei in c:\temp kopieren
und danach von dort starten
 
Zurück
Oben