Laufwerk Inhalt löschen bis auf bestimmte Ordner und Dateien
Hallo Zusammen,
Ich habe versucht die Variante von bastla aus einem alten Thread für mich anzupassen. Ich möchte später mal auf einen Netzlaufwerk alle Ordner bis auf 5-6 bestimmte löschen lassen.
Schritt 2 wäre dann Dateien die auf dem Laufwerk liegen und in keinem Ordner sind zu löschen bis auf ein-zwei Ausnahmen.
In meinem Test möchte ich die Ordner muster, test2, office behalten und alle anderen im Verzeichnis Test1 löschen
Ergebnis des Echos:
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
rd /s /q "C:\Test1\muster"
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
rd /s /q "C:\Test1\office"
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
rd /s /q "C:\Test1\test1"
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
rd /s /q "C:\Test1\test2"
Drücken Sie eine beliebige Taste . . .
lösche ich das letze Echo sprich das vor rd erscheint:
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
Drücken Sie eine beliebige Taste . . .
und nur das Verzeichnis Test2 ist noch vorhanden alles andere wurde gelöscht.
Ich finde den Fehler gerade nicht und wäre Dankbar für Eure Hilfe.
Falls jemand noch eine Idee hat wie ich Schritt2 noch unterbekomme wäre ich auch sehr dankbar
Vielen Dank
gruß
Stefan
Ich habe versucht die Variante von bastla aus einem alten Thread für mich anzupassen. Ich möchte später mal auf einen Netzlaufwerk alle Ordner bis auf 5-6 bestimmte löschen lassen.
Schritt 2 wäre dann Dateien die auf dem Laufwerk liegen und in keinem Ordner sind zu löschen bis auf ein-zwei Ausnahmen.
In meinem Test möchte ich die Ordner muster, test2, office behalten und alle anderen im Verzeichnis Test1 löschen
@echo off & setlocal
set "Ordner=C:\Test1"
set "Behalten=§muster§test2§office§"
for /d %%i in ("%Ordner%\*.*") do echo "%Behalten%"|findstr /i "§%%~nxi§">nul|| echo rd /s /q "%%i"
pause
Ergebnis des Echos:
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
rd /s /q "C:\Test1\muster"
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
rd /s /q "C:\Test1\office"
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
rd /s /q "C:\Test1\test1"
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
rd /s /q "C:\Test1\test2"
Drücken Sie eine beliebige Taste . . .
lösche ich das letze Echo sprich das vor rd erscheint:
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)
Drücken Sie eine beliebige Taste . . .
und nur das Verzeichnis Test2 ist noch vorhanden alles andere wurde gelöscht.
Ich finde den Fehler gerade nicht und wäre Dankbar für Eure Hilfe.
Falls jemand noch eine Idee hat wie ich Schritt2 noch unterbekomme wäre ich auch sehr dankbar
Vielen Dank
gruß
Stefan
Please also mark the comments that contributed to the solution of the article
Content-ID: 177974
Url: https://administrator.de/forum/laufwerk-inhalt-loeschen-bis-auf-bestimmte-ordner-und-dateien-177974.html
Printed on: May 11, 2025 at 21:05 o'clock
4 Comments
Latest comment

moin,
zeile 1.... (ich weiß das macht Bastla absichtlich)...
zeile 1.... (ich weiß das macht Bastla absichtlich)...
Zeichenfolgenzählfehler: (0 ist nicht gleich 1)== "§"
C:\>dir /b c:\test1
amwechsten
test.cmd
test2
wech
wecher
set "Ordner=C:\Test1"
set "Behalten=zyxmusterzyxtest2zyxofficezyx"
for /d %%i in ("%Ordner%\*.*") do echo "%Behalten%"|findstr /i "zyx%%~nxizyx">nul|| rd /s /q "%%i"
pause
C:\>c:\test1\test.cmd
C:\>set "Ordner=C:\Test1"
C:\>set "Behalten=zyxmusterzyxtest2zyxofficezyx"
C:\>for / %i in ("C:\Test1\*.*") do echo "zyxmusterzyxtest2zyxofficezyx" | find
str /i "zyx%~nxizyx" 1>nul || rd /s /q "%i"
C:\>echo "zyxmusterzyxtest2zyxofficezyx" | findstr /i "zyxamwechstenzyx" 1>nul
|| rd /s /q "C:\Test1\amwechsten"
C:\>echo "zyxmusterzyxtest2zyxofficezyx" | findstr /i "zyxtest2zyx" 1>nul || r
d /s /q "C:\Test1\test2"
C:\>echo "zyxmusterzyxtest2zyxofficezyx" | findstr /i "zyxwechzyx" 1>nul || rd
/s /q "C:\Test1\wech"
C:\>echo "zyxmusterzyxtest2zyxofficezyx" | findstr /i "zyxwecherzyx" 1>nul ||
rd /s /q "C:\Test1\wecher"
C:\>pause
Drücken Sie eine beliebige Taste . . .
C:\>dir /b c:\test1
test.cmd
test2
C:\>
Hallo derjuice!
Ja, liegt am "§" (wobei ich nicht wirklich weiß, warum
) - wenn Du stattdessen ":" verwendest (kann in einem Datei-/Ordnernamen nicht vorkommen und ist daher als Trennzeichen geeignet), sollte das dann wieder klappen ...
Für die Be- (oder Miss-
)handlung von Dateien sähe das etwa so aus:
Grüße
bastla
Ja, liegt am "§" (wobei ich nicht wirklich weiß, warum
Für die Be- (oder Miss-
set "dBehalten=:test.bad:test2.bat:kill.exe:Killnotes.exe:"
for /f "delims=" %%i in ('dir /b /a-d "%Ordner%"') do echo "%dBehalten%"|findstr /i ":%%~i:">nul||echo del /f "%Ordner%\%%~i"
bastla