aufräum-batch
ordner umbennen, lästige dateien löschen
mein erster beitrag hier
ich möchte gern eine art aufräum-batch programmieren
es sollte folgenden ablauf haben:
-in dem verzeichnis der batch-datei ->
alle umliegenden ordner überprüfen ob im namen eine gewisse zeichenfolge auftaucht:
syntax = "www.einepa.ge...<*>.muell<*>.quark" (wo <*> steht, ist wichtiges was nicht gelöscht werden soll)
es soll dann der jeweilige ordner so umbenannt werden dass "www.einepa.ge...", ".muell" und ".quark" aus dem namen verschwinden
-im verzeichnis der batch-datei, als auch in allen unterverzeichnissen->
alle "<*>.url"-dateien löschen
ich würde mich freuen wenn man mir erzählt wie man sowas bewerkstelligen kann
mein erster beitrag hier
ich möchte gern eine art aufräum-batch programmieren
es sollte folgenden ablauf haben:
-in dem verzeichnis der batch-datei ->
alle umliegenden ordner überprüfen ob im namen eine gewisse zeichenfolge auftaucht:
syntax = "www.einepa.ge...<*>.muell<*>.quark" (wo <*> steht, ist wichtiges was nicht gelöscht werden soll)
es soll dann der jeweilige ordner so umbenannt werden dass "www.einepa.ge...", ".muell" und ".quark" aus dem namen verschwinden
-im verzeichnis der batch-datei, als auch in allen unterverzeichnissen->
alle "<*>.url"-dateien löschen
ich würde mich freuen wenn man mir erzählt wie man sowas bewerkstelligen kann
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 68733
Url: https://administrator.de/forum/aufraeum-batch-68733.html
Ausgedruckt am: 19.05.2025 um 16:05 Uhr
10 Kommentare
Neuester Kommentar
@Biber
Ich hätte es etwa so verstanden:
wobei es (... alle umliegenden ordner ...) auch "dir .. /b /ad" heißen könnte ...
@PepperCaster
Im Beispielbatch oben steht vor dem entscheidenden "ren" ein "echo", damit Du Dir zuerst ansehen kannst, wie die Umbenennung erfolgen würde. Falls es so ok ist, einfach das "echo" entfernen.
Zum Löschen aller .url-Dateien:
Grüße
bastla
Ich hätte es etwa so verstanden:
@echo off & setlocal
for /f "delims=" %%i in ('dir /b /ad') do call :ProcessFolder "%%i"
goto :eof
:ProcessFolder
set "VName=%~1"
set "VName=%VName:www.einepa.ge...=%"
set "VName=%VName:.muell=%"
set "VName=%VName:.quark=%"
echo ren %1 "%VName%"
@PepperCaster
Im Beispielbatch oben steht vor dem entscheidenden "ren" ein "echo", damit Du Dir zuerst ansehen kannst, wie die Umbenennung erfolgen würde. Falls es so ok ist, einfach das "echo" entfernen.
Zum Löschen aller .url-Dateien:
del *.url /s /q >nul
Grüße
bastla
Moin PepperCaster,
wenn Du diese Minik öfters brauchst, dann solltest Du die beiden Strings, die bastla als Konstanten eingebaut hat (".muell" und ".quark" ) als Parameter übergeben. Para1: ".muell" Para2: ".quark"
Es sei denn, ".muell" und ".quark" sind wirklich konstant.
Aber erstmal die Änderung ausgehend von bastlas Lösung:
Grüße
Biber
wenn Du diese Minik öfters brauchst, dann solltest Du die beiden Strings, die bastla als Konstanten eingebaut hat (".muell" und ".quark" ) als Parameter übergeben. Para1: ".muell" Para2: ".quark"
Es sei denn, ".muell" und ".quark" sind wirklich konstant.
Aber erstmal die Änderung ausgehend von bastlas Lösung:
::----snipp ReduxFileNames.bat
@echo off & setlocal
for /f "delims=" %%i in ('dir /b /a-D /s "*.muell*.quark" ') do call :ProcessFile "%%~fi"
goto :eof
:ProcessFile
set "VName=%~nx1"
set "VName=%VName:www.einepa.ge...=%"
set "VName=%VName:.muell=%"
set "VName=%VName:.quark=%"
echo ren "%~dp1\%~nx1" "%VName%"
Grüße
Biber
@bastla
Gleichzeitig (Verzeichnisse UND Dateien) wird es nicht gehen, da sonst u.U. Dateien in bereits umbenannten Verzeichnissen umbenannt werden sollen.
Ansonsten ist die Schreibweise "Dir /a-d" und "Dir /a:-d" IMHO gleichwertig.
Grüße
Biber
Beim "dir" sollte es eher "/a:d" heißen ...
Wieso? In meiner Variante wollte ich nur die Nicht-DIRs umbenennen.Gleichzeitig (Verzeichnisse UND Dateien) wird es nicht gehen, da sonst u.U. Dateien in bereits umbenannten Verzeichnissen umbenannt werden sollen.
Ansonsten ist die Schreibweise "Dir /a-d" und "Dir /a:-d" IMHO gleichwertig.
Grüße
Biber
@Biber
Sorry, hast natürlich Recht. Ich war anscheinend beim "Ordner-umbenennungs-Verfahren" hängengeblieben und hatte den Themenwechsel auf Dateien nicht mitvollzogen ...
Andere Frage: Spricht etwas dagegen, für die letzte Zeile
zu schreiben?
Grüße
bastla
Sorry, hast natürlich Recht. Ich war anscheinend beim "Ordner-umbenennungs-Verfahren" hängengeblieben und hatte den Themenwechsel auf Dateien nicht mitvollzogen ...
Andere Frage: Spricht etwas dagegen, für die letzte Zeile
echo ren %1 "%VName%"
Grüße
bastla
Moin bastla,
Falls es mal in "Y:\Eigene Dateien" zum Einsatz kommt oder auf dem Desktop.
Ansonsten hast Du Recht:
Streiche:
Setze:
Grüße
Biber
Andere Frage: Spricht etwas dagegen, für die letzte Zeile
eigentlich nicht... außer, dass ich das %1 in Anführungszeichen setzen würde.echo ren %1 "%VName%"
zu schreiben?Falls es mal in "Y:\Eigene Dateien" zum Einsatz kommt oder auf dem Desktop.
Ansonsten hast Du Recht:
Streiche:
echo ren "%~dp1\%~nx1" "%VName%"
Setze:
echo ren "%~1" "%VName%"
Grüße
Biber
@Biber
Ich hätte gedacht, da Du ja beim "call" die Anführungszeichen gesetzt hast, würde das schon genügen ...
Grüße
bastla
Ich hätte gedacht, da Du ja beim "call" die Anführungszeichen gesetzt hast, würde das schon genügen ...
Grüße
bastla