manuel.wis
Goto Top

Mithilfe von Batch Dateien umbennen mit Variablen im Namen

Guten Tag,

Ich würde gerne mit Hilfe einer Batchdatei, Dateien umbennen. Soweit so gut.

rename "C:\Users\mwi\Desktop\Hitfilm Export\Projector1\*.jpg" a5projector1.jpg  

Nun kommt der Teil an dem ich nicht weiter komme. Ich würde gerne Abfrage machen, mit der sich entscheidet, welcher prefix vor den Dateinamen kommt. Im Beispiel oben steht dort ja a5..., aber ich würde gerne in der Abfrage nur eingeben 1,2,3,4,5 oder 6 und der Dateiname soll sich dementsprechend ändern zu: 1 -> projector1.jpg; 2-> a2projector1.jpg bis a6projector1.jpg.

Ich hab gestartet mit:

set /p show=Show:
if %show%==2(set %pre%=a2:
rename "C:\Users\mwi\Desktop\test\test123.txt" %pre%projector1.txt:  

Ich hab keine Ahnung ob das so klappen kann, aber das tut es im Moment nicht. Hab heute erst angefangen mich in das Thema einzulesen.

Bin für jede Hilfe dankbar.

MFG

Content-ID: 422123

Url: https://administrator.de/forum/mithilfe-von-batch-dateien-umbennen-mit-variablen-im-namen-422123.html

Ausgedruckt am: 21.04.2025 um 18:04 Uhr

erikro
Lösung erikro 26.02.2019 aktualisiert um 17:11:30 Uhr
Goto Top
Moin,

wenn Du Dich sowieso erst anfängst, Dich einzulesen, dann rate ich Dir, lerne gleich die Powershell und nicht diese Qual namens Batch. face-wink

Allerdings habe ich noch nicht ganz verstanden, was das soll.

Zitat von @Manuel.wis:
rename "C:\Users\mwi\Desktop\Hitfilm Export\Projector1\*.jpg" a5projector1.jpg  

Das kann nicht funktionieren, denn Du willst mit einer Wildcard allen Dateien, die mit jpg enden, den selben Namen geben.

Nun kommt der Teil an dem ich nicht weiter komme. Ich würde gerne Abfrage machen, mit der sich entscheidet, welcher prefix vor den Dateinamen kommt. Im Beispiel oben steht dort ja a5..., aber ich würde gerne in der Abfrage nur eingeben 1,2,3,4,5 oder 6 und der Dateiname soll sich dementsprechend ändern zu: 1 -> projector1.jpg; 2-> a2projector1.jpg bis a6projector1.jpg.

Willst Du auf Grund einer Eingabe eine Reihe von Dateien umbenennen? Oder willst Du eine Datei umbenennen? Bei Letzterem frage ich mich, wozu dann ein Skript. Oder soll das Teil eines größeren Skripts werden?

Ich hab gestartet mit:

set /p show=Show:
> if %show%==2(set %pre%=a2:
> rename "C:\Users\mwi\Desktop\test\test123.txt" %pre%projector1.txt:  

Ich hab keine Ahnung ob das so klappen kann, aber das tut es im Moment nicht. Hab heute erst angefangen mich in das Thema einzulesen.

Das kann so auch nicht funktionieren:

1. Vor der öffnenden Klammer nach der Bedingung muss ein Leerzeichen stehen.
2. Die Doppelpunkte hinter den beiden Zeilen müssen weg.
3. Die Klammer vor dem set muss am Ende auch wieder geschlossen werden.

hth

Liebe Grüße

Erik
Manuel.wis
Manuel.wis 26.02.2019 um 17:39:47 Uhr
Goto Top
In dem Ordner ist nur eine JPG Datei, die jedoch jedes mal anders heißt, deswegen klappt das umbenennen so schon.

Ich versuche mal mein Problem, weshalb ich das hier mache zu erläutern. Wir haben eine Ausstellung, wo mithilfe von 5 Beamern, alles an die Wände projiziert wird. Dafür erstelle ich zu erst ein Bild mit allen Inhalten der Ausstellung, danach wird dieses Bild passend geschnitten und gezerrt (da die Wände nicht gerade sind, ist dies notwendig) und in die Ordner Projector1 (-5) hinterlegt. Dort haben sie vom exportieren nun alle einen mehr oder weniger zufälligen Namen.

Sprich Ausgangslage, 5 Ordner mit jeweils einer JPG Datei.

Nun müssen die 5 Dateien umbenannt werden zu projector1(-5).jpg damit der Rechner später weiß, welches Bild zu welchem Beamer gehört und außerdem haben wir auf unserem Touchpanel, 6 Ausstellungen die wir auswählen können. Ausstellung 1 ist einfach nur "projector1(-5).jpg" und ab Ausstellung 2 "a2projector1(-5).jpg" und das bis a6 dann.

Nun ist es mein Ziel, dass wenn ich die .bat Datei ausführe, auswählen kann Show 1-6 und dann dementsprechend der passende prefix vor die Dateinamen gesetzt wird. Bzw. bei Ausstellung 1 einfach nichts davor kommt. Ich hoffe man versteht was ich meine.

Nun war mein Gedankengang, dass ich eine Abfrage zum Beginn mache mit:
set /p show=Show:

Dann sage:
IF show=2 dann setz prefix=a2
IF show=3 dann setz prefix=a3
IF show=4 dann setz prefix=a4
IF show=5 dann setz prefix=a5
IF show=6 dann setz prefix=a6

und dann beim neuen Namen einfach %prefix%projector1.jpg, sodass bei 1 nichts davor kommt und bei den anderen zahlen jeweils das a mit der jeweiligen Zahl.
138810
Lösung 138810 26.02.2019 aktualisiert um 20:32:07 Uhr
Goto Top
@echo off
set /p "show=Ihre Eingabe:"  
If "%show%" == "1" set "prefix="  
If "%show%" == "2" set "prefix=a2"  
If "%show%" == "3" set "prefix=a3"  
If "%show%" == "4" set "prefix=a4"  
If "%show%" == "5" set "prefix=a5"  
If "%show%" == "6" set "prefix=a6"  
for %%a in ("C:\Users\mwi\Desktop\HitfilmExport\Projector1\*.jpg") do ren "%%a" "%prefix%projektor1%%~xa"  
REM usw.
Manuel.wis
Manuel.wis 27.02.2019 um 07:30:01 Uhr
Goto Top
Danke sehr, für die schnelle Hilfe! Es hat geklappt.