Alle Ordner löschen bis auf zwei bestimmte Ordner per batch
Ich möchte gerne eine Batch-Datei erstellen, die alles löscht bis auf ein paar bestimmte Ordner.
Hallo zusammen,
ich habe schon ein bisschen im Forum gesucht und schon ein paar Gute Sachen gefunden.
Ich möchte gerne, dass eine Batchdatei, welche Zeitgesteuert von der Aufgabenplanung ausgeführt wird, alle Ordner und Dateien in einem bestimmten Verzeichnis löscht.
Hier mein Vorschlag:
leider weiß ich jetzt nicht, wie ich die zweite Variable reinbekomme.
"%Behalten2%"
Gibt es irgendwie einen Befehl or oder so?
Bin leider ein absoluter Anfänger =).
Für jede Hilfe bin ich dankbar!
[Edit Biber] Codeformatierung [/Edit]
Hallo zusammen,
ich habe schon ein bisschen im Forum gesucht und schon ein paar Gute Sachen gefunden.
Ich möchte gerne, dass eine Batchdatei, welche Zeitgesteuert von der Aufgabenplanung ausgeführt wird, alle Ordner und Dateien in einem bestimmten Verzeichnis löscht.
Hier mein Vorschlag:
@echo off
echo "Daten werden vom Austausch-Berlin gelöscht"
set "Ordner=D:\Austausch-Berlin\_test"
set "Behalten=_Software"
set "Behalten2=_Vorlagen"
for /d %%i in ("%Ordner%\*.*") do if /i "%%~nxi" neq "%Behalten%" rd /s /q "%%i"
leider weiß ich jetzt nicht, wie ich die zweite Variable reinbekomme.
"%Behalten2%"
Gibt es irgendwie einen Befehl or oder so?
Bin leider ein absoluter Anfänger =).
Für jede Hilfe bin ich dankbar!
[Edit Biber] Codeformatierung [/Edit]
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 156886
Url: https://administrator.de/contentid/156886
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
5 Kommentare
Neuester Kommentar
Moin Dunkelangel2k3,
willkommen im Forum.
Einen OR-Befehl mit genau diesen Schlüsselwort "OR" gibt es so nicht im Batch.
Aber diverse Abbildungsmöglichkeiten der Anforderung.
Für dich als Anfänger bestimmt am einfachsten nachzuvollziehen wäre die Variante mit zwei hintereinandergeschalteten "IF ..NEQ "-Abfragen.
Grüße
Biber
willkommen im Forum.
Einen OR-Befehl mit genau diesen Schlüsselwort "OR" gibt es so nicht im Batch.
Aber diverse Abbildungsmöglichkeiten der Anforderung.
Für dich als Anfänger bestimmt am einfachsten nachzuvollziehen wäre die Variante mit zwei hintereinandergeschalteten "IF ..NEQ "-Abfragen.
@echo off & setLocal
echo "Daten werden vom Austausch-Berlin gelöscht"
set "Ordner=D:\Austausch-Berlin\_test"
set "Behalten=_Software"
set "Behalten2=_Vorlagen"
for /d %%i in ("%Ordner%\*.*") do if /i "%%~nxi" neq "%Behalten%" if /i "%%~nxi" neq "%Behalten2%" rd /s /q "%%i"
Grüße
Biber
Hallo darkangel2k3!
Würde ich eher so anlegen (ungetestet):
- im "Nicht-Test-Fall" natürlich ohne das "
Der Vorteil dieses Ansatzes ist die relativ einfache Erweiterbarkeit (zusätzliche auszusparende Ordner müssten nur an den String %Behalten% angefügt und mit "§" abgeschlossen werden).
Grüße
bastla
Würde ich eher so anlegen (ungetestet):
@echo off & setlocal
set "Ordner=D:\Austausch-Berlin\_test"
set "Behalten=§_Software§_Vorlagen§"
for /d %%i in ("%Ordner%\*.*") do echo "%Behalten%"|findstr /i "§%%~nxi§">nul||echo rd /s /q "%%i"
echo
" unmittelbar vor dem "rd
". Sollte in den Ordnernamen "§" vorkommen, einfach ein anderes Trennzeichen wählen.Der Vorteil dieses Ansatzes ist die relativ einfache Erweiterbarkeit (zusätzliche auszusparende Ordner müssten nur an den String %Behalten% angefügt und mit "§" abgeschlossen werden).
Grüße
bastla
Moin,
ungetestet hätte ich diesen Vorschlag parat:
Markus
ungetestet hätte ich diesen Vorschlag parat:
@echo off
echo "Daten werden vom Austausch-Berlin gelöscht"
set "Ordner=D:\Austausch-Berlin\_test"
set "Behalten=_Software"
set "Behalten2=_Vorlagen"
for /d %%i in ("%Ordner%\*.*") do (
if /i "%%~nxi" == "%Behalten%" goto :eof
if /i "%%~nxi" == "%Behalten2%" goto :eof
echo rd /s /q "%%i"
)
Markus
hi....
sonst noch eine andere variante
verschieb die ordner temporär, lösch den inhalt des übergeortneten ordners und verschieb die ordner wieder zurück
ist Teilweise auch ganz praktisch
Grüsse
Switcher
sonst noch eine andere variante
verschieb die ordner temporär, lösch den inhalt des übergeortneten ordners und verschieb die ordner wieder zurück
ist Teilweise auch ganz praktisch
Grüsse
Switcher