Per Batch mehrere Dateien aus einem Ordner umbenennen
Hallo liebe Community.
Ich habe ein Problem und die Suche war auch hilfreich nur funktioniert meine eigene Batch nicht.
Und ich bin am verzweifeln...
Ich habe einen Ordner X und einen Ordner X-Archiv.
Ich will nun alle Dateien aus Ordner X nach X-Archiv kopieren + an den Anfang ein S setzen.
Mein Code bissher sieht so aus:
@echo on
for %%i in ("C:\Data\EDPTEXTClient\Export\TransportRD-Archiv\EPDEXPORT*.ZIP") do call :RenameDatei
goto :eof
:RenameDatei
REM echo %%i
set origDatei=%%i
set Dateiname=%origDatei:~-36%
REN %origDatei% S%Dateiname%
Funktioniert nicht. Ich habe es auch mit folgendem Code probiert, welcher teilweise funktioniert:
@echo on
for %%j in (C:\Data\EDPTEXTClient\Export\TransportRD-Archiv\*.ZIP) do @(
set origDatei=%%j
set Datei=%origDatei:~-36%
REN %origDatei% S_%Datei%
)
Nur keine von beiden Batches benennt alle Dateien um.
Entweder eine und dann beim erneuten ausführen wieder eine , oder wie bei Code1 wird %%i nicht gefüllt und er läuft gegen Fehler.
Hat wer eine Idee wo ich nen Fehler gemacht habe?
Vielen Dank
Christian
Ich habe ein Problem und die Suche war auch hilfreich nur funktioniert meine eigene Batch nicht.
Und ich bin am verzweifeln...
Ich habe einen Ordner X und einen Ordner X-Archiv.
Ich will nun alle Dateien aus Ordner X nach X-Archiv kopieren + an den Anfang ein S setzen.
Mein Code bissher sieht so aus:
@echo on
for %%i in ("C:\Data\EDPTEXTClient\Export\TransportRD-Archiv\EPDEXPORT*.ZIP") do call :RenameDatei
goto :eof
:RenameDatei
REM echo %%i
set origDatei=%%i
set Dateiname=%origDatei:~-36%
REN %origDatei% S%Dateiname%
Funktioniert nicht. Ich habe es auch mit folgendem Code probiert, welcher teilweise funktioniert:
@echo on
for %%j in (C:\Data\EDPTEXTClient\Export\TransportRD-Archiv\*.ZIP) do @(
set origDatei=%%j
set Datei=%origDatei:~-36%
REN %origDatei% S_%Datei%
)
Nur keine von beiden Batches benennt alle Dateien um.
Entweder eine und dann beim erneuten ausführen wieder eine , oder wie bei Code1 wird %%i nicht gefüllt und er läuft gegen Fehler.
Hat wer eine Idee wo ich nen Fehler gemacht habe?
Vielen Dank
Christian
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 158106
Url: https://administrator.de/contentid/158106
Ausgedruckt am: 13.11.2024 um 22:11 Uhr
6 Kommentare
Neuester Kommentar
moin,
nur in Codeblöcke gesetzt und ungetestet ....
(der schmeisst doch die Suffix raus - soll das so sein?)
nur in Codeblöcke gesetzt und ungetestet ....
(der schmeisst doch die Suffix raus - soll das so sein?)
@echo on
for %%i in ("C:\Data\EDPTEXTClient\Export\TransportRD-Archiv\EPDEXPORT*.ZIP") do call :RenameDatei %%i
goto :eof
:RenameDatei
REM echo %1
set origDatei=%1
set Dateiname=%origDatei:~-36%
REN %origDatei% S%Dateiname%
Hat wer eine Idee wo ich nen Fehler gemacht habe?
- %%i gilt nur innerhalb der Schleife
Vielen Dank
Christian
Christian
Hallo hbspike und willkommen im Forum!
T-Mo hat ja im Unterprogramm auch nicht "
Um einen einfachen Dateinamen zu erhalten sollte es nicht nötig sein, Stringzerlegungen vorzunehmen:
Das "
Erklärt wird "%%~nxi" (= Kombination aus "%%~ni" und "%%~xi") in der Hilfe ("
Grüße
bastla
T-Mo hat ja im Unterprogramm auch nicht "
%i
", sondern "%1
" verwendet ...Um einen einfachen Dateinamen zu erhalten sollte es nicht nötig sein, Stringzerlegungen vorzunehmen:
for %%i in ("C:\Data\EDPTEXTClient\Export\TransportRD-Archiv\EPDEXPORT*.ZIP") do echo copy "%%i" "D:\X-Archivpfad\S%%~nxi"
echo
" dient dazu, den Kopierbefehl nur einmal anzuzeigen (und noch nicht auszuführen). Ein "ren
" könntest Du nach dem selben Schema durchführen.Erklärt wird "%%~nxi" (= Kombination aus "%%~ni" und "%%~xi") in der Hilfe ("
for /?
", ziemlich gegen Ende) bzw im Tutorial zur FOR-Schleife ...Grüße
bastla
Hallo hbspike!
Grüße
bastla
Lol im Zitat taucht mehr text auf als im eigentlichen Post und da ist ja auch schon die Erklärugn drinen.
Wie kann denn das sein?
In diesem Forum wird mit der Möglichkeit des Editierens von Kommentaren ziemlich entspannt umgegangen (daher gibt's öfter mal "work in progress") ... Wie kann denn das sein?
Grüße
bastla
Der Beitrag ist zwar schon etwas älter, aber ich hätte da noch etwas.
Deine Frage war ja wie folgt:
"Ich habe einen Ordner X und einen Ordner X-Archiv.
Ich will nun alle Dateien aus Ordner X nach X-Archiv kopieren + an den Anfang ein S setzen."
Probiere es mal mit dem Befehl:
Wenn du die Ordner "c:\X" und "c:\X-Archiv" hast würde ich wie folgt vorgehen.
c:
cd c:\X
copy *.* "c:\X-Archiv"
cd "c:\X-Archiv"
forfiles /c "cmd /c ren @File S@file"
Das ist, denke ich noch etwas einfacher.
LG
Deine Frage war ja wie folgt:
"Ich habe einen Ordner X und einen Ordner X-Archiv.
Ich will nun alle Dateien aus Ordner X nach X-Archiv kopieren + an den Anfang ein S setzen."
Probiere es mal mit dem Befehl:
Wenn du die Ordner "c:\X" und "c:\X-Archiv" hast würde ich wie folgt vorgehen.
c:
cd c:\X
copy *.* "c:\X-Archiv"
cd "c:\X-Archiv"
forfiles /c "cmd /c ren @File S@file"
Das ist, denke ich noch etwas einfacher.
LG