Per Batch alles löschen, allerdings 2 Ordner ausschließen
Hallo Zusammen,
für Euch sicher eine leichtigkeit... Ich brauche ein Batch, das in einem Ordner alle Dateien und Unterordner löscht, egal was hier reingespeichert wird und wie diese benannt sind. Das Skript soll aber 2 Unterordner die auch hier liegen ignorieren.
Hab Ihr ein Lösungsansatz für mich. Über die Sufu konnte ich nur Ansätze finden, die nach Datum oder alter von Dateien löschen.
Vielen Dank Euch!
für Euch sicher eine leichtigkeit... Ich brauche ein Batch, das in einem Ordner alle Dateien und Unterordner löscht, egal was hier reingespeichert wird und wie diese benannt sind. Das Skript soll aber 2 Unterordner die auch hier liegen ignorieren.
Hab Ihr ein Lösungsansatz für mich. Über die Sufu konnte ich nur Ansätze finden, die nach Datum oder alter von Dateien löschen.
Vielen Dank Euch!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 169479
Url: https://administrator.de/contentid/169479
Ausgedruckt am: 22.11.2024 um 17:11 Uhr
13 Kommentare
Neuester Kommentar
Aloha,
so ganz kristallklar ist mir das jetzt nicht, sind die beiden Verzeichnisse Unterordner des Stammverzeichnisses von dem du ausgehst, oder noch eine (oder mehrere Ebenen tiefer) sprich:
Angenommen wir gehen von wqeqw aus, ist der dann dort:
oder dort
? Denn das macht einen deutlichen Unterschied im Skript, das eine wäre easygoing, das andere wäre umständlicher, weil man nicht das übergeordnete Verzeichnis des gesuchten Verzeichnisses löschen darf.
greetz André
so ganz kristallklar ist mir das jetzt nicht, sind die beiden Verzeichnisse Unterordner des Stammverzeichnisses von dem du ausgehst, oder noch eine (oder mehrere Ebenen tiefer) sprich:
Angenommen wir gehen von wqeqw aus, ist der dann dort:
E:\SKRIPTE\NEUER ORDNER
└───wqeqw
└───Neuer Ordner
└───Neuer Ordner
└───grabbel
E:\SKRIPTE\NEUER ORDNER
└───Neuer Ordner
└───wqeqw
└───Neuer Ordner 2
└───grabbel
greetz André
Hallo Mike0185,
ich mache hier mal einen Vorschlag für den Easy-Going-Fall :
Die Variablen in Zeile 3 und 4 musst Du anpassen. Falls die auszunehmenden Verzeichnisse Leerzeichen im Namen enthalten, musst Du sie so wie im Beispiel in Zeile 4 in Anführungszeichen setzen.
Gruß
Friemler
ich mache hier mal einen Vorschlag für den Easy-Going-Fall :
@echo off & setlocal
set "SrcDir=E:\Test"
set "Exclude="Der erste" "Der zweite""
del /q "%SrcDir%\*.*" 2>NUL
set "DoNotDelete="
for /f "delims=" %%d in ('dir /b /a:d "%SrcDir%"') do (
for %%e in (%Exclude%) do (
if "%%d" equ "%%~e" set "DoNotDelete=1"
)
if not defined DoNotDelete rd /s /q "%SrcDir%\%%d"
set "DoNotDelete="
)
Die Variablen in Zeile 3 und 4 musst Du anpassen. Falls die auszunehmenden Verzeichnisse Leerzeichen im Namen enthalten, musst Du sie so wie im Beispiel in Zeile 4 in Anführungszeichen setzen.
Gruß
Friemler
Aloha Friemler,
hmm ... gab zu wenig zum Frühstück, Mittag ist erst in 30 Minuten ... heute ist Montag und es ist dauergrau, reicht das als Ausrede, Zeile 6 komplett ausgeblendet zu haben?
greetz André
edit: Aber mal die Frage: Warum arbeitest du nicht einfach mit
hmm ... gab zu wenig zum Frühstück, Mittag ist erst in 30 Minuten ... heute ist Montag und es ist dauergrau, reicht das als Ausrede, Zeile 6 komplett ausgeblendet zu haben?
greetz André
edit: Aber mal die Frage: Warum arbeitest du nicht einfach mit
findstr /v /e /c
? Wäre meine Umsetzung gewesen
Hi André,
weil man beim Parameter
Gruß
Friemler
Zitat von @Skyemugen:
Warum arbeitest du nicht einfach mit
Warum arbeitest du nicht einfach mit
findstr /v /e /c
? Wäre meine Umsetzung gewesen weil man beim Parameter
/c:
nur einen Suchbegriff angeben kann. Damit wäre dann auch wieder eine extra Schleife erforderlich, um auf alle Ausnahmen zu prüfen. Die Verzeichnisse ohne /c:
angeben geht auch nicht, da die Verzeichnisnamen Leerzeichen enthalten könnten und somit die beiden Teile als zwei Namen aufgefasst würden.Gruß
Friemler
Hey André,
joa, aber nur um auf einen Oneliner zu kommen so einen Bandwurm? Und wenn der TO vielleicht mal 3 oder 4 Verzeichnisse ausschließen will, ist jedesmal ein neuer
Guten Appetit
Friemler
joa, aber nur um auf einen Oneliner zu kommen so einen Bandwurm? Und wenn der TO vielleicht mal 3 oder 4 Verzeichnisse ausschließen will, ist jedesmal ein neuer
FINDSTR
-Abschnitt erforderlich - der Bandwurm wird länger. Ich denke, meine Lösung ist am einfachsten anpassbar.Guten Appetit
Friemler
Aloha Friemler,
der Bandwurm kommt natürlich wieder nur, weil da zu viel Überflüssiges steht ...
Wobei
greetz André
der Bandwurm kommt natürlich wieder nur, weil da zu viel Überflüssiges steht ...
^|findstr /v /i /e /c:"Ordner 1" /c:"Ordner 2"
sollte es ja auch tun Wobei
/e
ja auch wegfallen kann, der war noch drin, weil es von einem dir
ohne /ad
ausging ^_^ aber del
weigert sich ja doch, Verzeichnisse zu löschen, har hargreetz André