Batch - Ordner löschen - mit Platzhalter
Hey,
da hätte ich noch eine Frage,
könnte man folgenden Code nicht einfacher gestalten? Wieso kann man keine Ordner löschen indem man sie auch mit Platzhaltern identifiziert?
Hier ist mein alternativ Code:
Liebe Grüße
da hätte ich noch eine Frage,
könnte man folgenden Code nicht einfacher gestalten? Wieso kann man keine Ordner löschen indem man sie auch mit Platzhaltern identifiziert?
Hier ist mein alternativ Code:
@echo off
Setlocal EnableDelayedExpansion
FOR /F %%i in ('dir /b "alte_Sicherung*"') do (
set Name=%%i && del !Name! /F /S /Q && RMDIR !Name!/S /Q
)
Liebe Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 76573
Url: https://administrator.de/contentid/76573
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
9 Kommentare
Neuester Kommentar
Solche Sachen habe ich auch schon probiert, bei mir hat es auch nie geklappt. Musste das Ganze auch immer mit einem dir und einer FOR-Schleife lösen. Schick doch mal eine PN an Biber oder bastla [edit] mit einem Link zu diesem Beitrag drin [/edit], eventuell wissen unsere allseits geliebten Batch-Götter mehr.
Hallo ebimail!
Mit der von Dani vorgeschlagenen Zeile werden natürlich auch die in den zu löschenden Verzeichnissen enthaltenen Dateien gelöscht - bitte einmal testen.
Der Ordnung halber vielleicht noch der Hinweis, dass mit dem zusätzlichen "dir"-Schalter "/ad" die Schleife nur Verzeichnisse behandelt, was Du einfacher auch mit "for /d" haben kannst:
Grüße
bastla
Mit der von Dani vorgeschlagenen Zeile werden natürlich auch die in den zu löschenden Verzeichnissen enthaltenen Dateien gelöscht - bitte einmal testen.
Der Ordnung halber vielleicht noch der Hinweis, dass mit dem zusätzlichen "dir"-Schalter "/ad" die Schleife nur Verzeichnisse behandelt, was Du einfacher auch mit "for /d" haben kannst:
for /d %%i in ("alte_Sicherung*.*") do rd /s /q "%%i"
Grüße
bastla
Hallo future.former!
Als Ansatzpunkt kannst Du in der Windows-Hilfe nach dem Stichwort "cmd" suchen (vor allem auch die "Ergebnisse der Volltextsuche" beachten).
Hier im Forum findest Du neben einigen Links unter diesen Kommentar (mit Zusatznutzen in Form eines Batches zum Aufruf der Windows-Hilfe von der Kommandozeile) von Biber, dessen einschlägige Tutorials ich ebenfalls ausdrücklich empfehlen möchte.
Grüße
bastla
Als Ansatzpunkt kannst Du in der Windows-Hilfe nach dem Stichwort "cmd" suchen (vor allem auch die "Ergebnisse der Volltextsuche" beachten).
Hier im Forum findest Du neben einigen Links unter diesen Kommentar (mit Zusatznutzen in Form eines Batches zum Aufruf der Windows-Hilfe von der Kommandozeile) von Biber, dessen einschlägige Tutorials ich ebenfalls ausdrücklich empfehlen möchte.
Grüße
bastla
Hallo ebimail!
1) Sollte auch mit * funktionieren, aber wenn nichts gegen *.* spricht, tendiere ich zu dieser Schreibweise.
2) Hier wird kein "for /f" verwendet.
3) Versuch es mit zusätzlichen Anführungszeichen - etwa so:
Diese (undokumentierte) Schreibweise
habe ich (natürlich) erstmals bei Biber gesehen und verwende sie fast ausnahmslos. Ihr Vorteil ist, dass Werte mit enthaltenen (inklusive am Ende befindlichen) Leerstellen "zusammengehalten" werden, ohne die Anführungszeichen ebenfalls in die Variable übernehmen zu müssen, was gelegentlich (zB für eine "token"-Zerlegung) durchaus nützlich sein kann. Negative Nebenwirkungen sind mir bisher nicht aufgefallen.
Grüße
bastla
1) Sollte auch mit * funktionieren, aber wenn nichts gegen *.* spricht, tendiere ich zu dieser Schreibweise.
2) Hier wird kein "for /f" verwendet.
3) Versuch es mit zusätzlichen Anführungszeichen - etwa so:
FOR /F "delims=" %%i in ('dir /b "alte Sicherung*"') do (
set "Name=%%i" && del "!Name:~0,27!" /F /S /Q && RMDIR "!Name:~0,27!" /S /Q
)
set "Variable=Wert"
Grüße
bastla