Per Batch in alle unterordner und Umbenennen
Hallo Leute
Ich habe ein Kleines Batch file gemacht das so ausschaut
@echo off
d:
rem *.txt *.doc
echo on
Nun möchte ich aber das es in alle unterordner geht und dieses dort auch macht.
Ist dies möglich? Auch ohne jeden unterordner von hand zu definieren?
@echo off
d:
rem *.txt *.doc
cd Temp
rem *.txt *.doc
echo on
Dieses ist ab 241 Ordner relativ aufwändig Wenn ihr eine Methode kennt die das erleichtert wäre ich euch sehr dankbar
Ich habe ein Kleines Batch file gemacht das so ausschaut
@echo off
d:
rem *.txt *.doc
echo on
Nun möchte ich aber das es in alle unterordner geht und dieses dort auch macht.
Ist dies möglich? Auch ohne jeden unterordner von hand zu definieren?
@echo off
d:
rem *.txt *.doc
cd Temp
rem *.txt *.doc
echo on
Dieses ist ab 241 Ordner relativ aufwändig Wenn ihr eine Methode kennt die das erleichtert wäre ich euch sehr dankbar
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 81336
Url: https://administrator.de/contentid/81336
Ausgedruckt am: 22.11.2024 um 22:11 Uhr
8 Kommentare
Neuester Kommentar
Moin GODOFWAR,
grundsätzlich wäre für eine rekursive Abarbeitung (alle Ordner incl. Unterordner) eine FOR /R-Anweisung zu empfehlen.
Test für deinen Fall am CMD-Prompt:
das sollte Dir alle *.txt-Dateien unterhalb d:\temp auflisten.
Du kannst/könntest natürlich statt des [@echo "%i"] dann auch ein ["Ren "%i" "%~nxi"] abfeuern.
Aber bitte beachten:
Ein Umbenennen jeder *.txt (=Plain-Textdatei) in eine *.doc-Datei (=Word, formatierter Text) ist nicht so pauschal zu empfehlen.
Diesen Teil des Plans solltest Du nochmal kurz hier diskutieren.
Zu deinem Schnipsel:
Grüße
Biber
grundsätzlich wäre für eine rekursive Abarbeitung (alle Ordner incl. Unterordner) eine FOR /R-Anweisung zu empfehlen.
Test für deinen Fall am CMD-Prompt:
>for /r D:\temp %i in (*.txt) do @echo "%i"
das sollte Dir alle *.txt-Dateien unterhalb d:\temp auflisten.
Du kannst/könntest natürlich statt des [@echo "%i"] dann auch ein ["Ren "%i" "%~nxi"] abfeuern.
Aber bitte beachten:
Ein Umbenennen jeder *.txt (=Plain-Textdatei) in eine *.doc-Datei (=Word, formatierter Text) ist nicht so pauschal zu empfehlen.
Diesen Teil des Plans solltest Du nochmal kurz hier diskutieren.
Zu deinem Schnipsel:
- "REM" bedeutet im Batch Remark, Kommentar. Alles, was dahintersteht wird ignoriert.
- "REN" bedeutet Rename, Umbenamsen.
Grüße
Biber
Hi, tschuldigung dass ich hier einfach so reinplatze aber ich hätte da ne Frage:
Kann mir jemand helfen, ich will eine Batch schreiben, die mir z.B. aus meinen Eigenen Dateien alle *.doc Dateien rausfiltert und in den Ordner "Worddokumente" verschiebt.
Kann mir da Jemand helfen?
Ich bin nämlich viel zu faul um meine 55 ordner von Hand zu durchsuchen.
Und selbst bin ich im Batchen noch nicht so bewandert, dass das funktioniert
Danke
Padmak
Kann mir jemand helfen, ich will eine Batch schreiben, die mir z.B. aus meinen Eigenen Dateien alle *.doc Dateien rausfiltert und in den Ordner "Worddokumente" verschiebt.
Kann mir da Jemand helfen?
Ich bin nämlich viel zu faul um meine 55 ordner von Hand zu durchsuchen.
Und selbst bin ich im Batchen noch nicht so bewandert, dass das funktioniert
Danke
Padmak
Sorry aber ich bin neu hier beim nächsten mal mach ichs.
Ähhm ich glaub ich bin da zu blöd das haut bei mir nicht hin.
Bis jetzt siehts so aus:
@echo off
md "C:\Dokumente und Einstellungen\Padmak\Worddokumente"
set eig=C:\Dokumente und Einstellungen\Padmak\Eigene Dateien
for %%i in ("%eig%*.doc") do move /y "%%i" "%eig%"
kannst du mir da helfen?
Wäre echt nett
Danke Padmak
Ähhm ich glaub ich bin da zu blöd das haut bei mir nicht hin.
Bis jetzt siehts so aus:
@echo off
md "C:\Dokumente und Einstellungen\Padmak\Worddokumente"
set eig=C:\Dokumente und Einstellungen\Padmak\Eigene Dateien
for %%i in ("%eig%*.doc") do move /y "%%i" "%eig%"
kannst du mir da helfen?
Wäre echt nett
Danke Padmak
Hallo Padmak!
Da Du ja "55 Ordner" erwähnt hast, eher so:
Das "echo" bewirkt, dass die Verschiebebefehle voerst nur (zur Kontrolle) angezeigt werden - erst, wenn Du es entfernst, wird tatsächlich verschoben.
Das "/-y" nach "move" soll dafür sorgen, dass bereits vorhandene gleichnamige Dateien nicht ohne Rückfrage überschrieben werden (was beim Verschieben/Kopieren in einen "Sammelordner" eigentlich immer zu berücksichtigen ist).
Grüße
bastla
Da Du ja "55 Ordner" erwähnt hast, eher so:
@echo off & setlocal
set "Typ=doc"
set "Ziel=%userprofile%\Worddokumente"
set "Quelle=%userprofile%\Eigene Dateien"
md "%Ziel%" 2>nul
for /f "delims=" %%i in ('dir /s /b /a-d "%Quelle%\*.%Typ%" 2^>nul') do echo move /-y "%%i" "%Ziel%\"
Das "/-y" nach "move" soll dafür sorgen, dass bereits vorhandene gleichnamige Dateien nicht ohne Rückfrage überschrieben werden (was beim Verschieben/Kopieren in einen "Sammelordner" eigentlich immer zu berücksichtigen ist).
Grüße
bastla