Batch, Datei als Variablenwert umbenennen
Hallo zusammen,
ich möchte alle Dateien in einem Verzeichnis umbenennen. Dabei soll im Dateinamen das "X" in den aktuellen Wert der Variable "counter_CV" (Wert zwischen 1 und 99) umbennant werden.
Als Ausgabe bekomme ich dies:
ren "C:\Users\LuNi\Documents\ImageBase\zHitMeUp\CVX_43_A1.png" neu:counter_CV
Ersetze ich nun die Variable durch eine Zahl funktioniert es wie gewünscht.
ren "C:\Users\LuNi\Documents\ImageBase\zHitMeUp\CVX_43_A1.png" CV3_43_A1.png
Wie muss ich das Komando abändern das X aurch die Variable ersetzt wird?
Kann mir jemand damit behilflich sein?
LG
ich möchte alle Dateien in einem Verzeichnis umbenennen. Dabei soll im Dateinamen das "X" in den aktuellen Wert der Variable "counter_CV" (Wert zwischen 1 und 99) umbennant werden.
@echo off & setlocal enableDelayedExpansion
for %%i in ("%Vz%\ImageBase\zHitMeUp\*%X*") do (
set "neu=%%~nxi"
Echo ren "%%i" !neu:%X=%counter_CV%!
)
Als Ausgabe bekomme ich dies:
ren "C:\Users\LuNi\Documents\ImageBase\zHitMeUp\CVX_43_A1.png" neu:counter_CV
Ersetze ich nun die Variable durch eine Zahl funktioniert es wie gewünscht.
@echo off & setlocal enableDelayedExpansion
for %%i in ("%Vz%\ImageBase\zHitMeUp\*%X*") do (
set "neu=%%~nxi"
Echo ren "%%i" !neu:%X=3!
)
ren "C:\Users\LuNi\Documents\ImageBase\zHitMeUp\CVX_43_A1.png" CV3_43_A1.png
Wie muss ich das Komando abändern das X aurch die Variable ersetzt wird?
Kann mir jemand damit behilflich sein?
LG
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6494685699
Url: https://administrator.de/contentid/6494685699
Ausgedruckt am: 21.11.2024 um 17:11 Uhr
5 Kommentare
Neuester Kommentar
Moin,
Gruß Thomas
Zitat von @axelnick:
na du musst die Variable schon auch mit einem Prozentzeichen abschließen, wie du es auch bei der Vz-Variable getan hast@echo off & setlocal enableDelayedExpansion
for %%i in ("%Vz%\ImageBase\zHitMeUp\*%X*") do (
set "neu=%%~nxi"
Echo ren "%%i" !neu:%X=%counter_CV%!
)
@echo off & setlocal enableDelayedExpansion
for %%i in ("%Vz%\ImageBase\zHitMeUp\*%X%*") do (
set "neu=%%~nxi"
Echo ren "%%i" "!neu:%X%=%counter_CV%!"
)
Gruß Thomas
Zitat von @axelnick:
Dennoch möchte er den Namen nicht ändern.
ren "C:\Users\LuNi\Documents\ImageBase\zHitMeUp\CVX_43_A1.png" "neu:=1"
Du hast der Variable X aber schon einen Wert zugewiesen?Dennoch möchte er den Namen nicht ändern.
ren "C:\Users\LuNi\Documents\ImageBase\zHitMeUp\CVX_43_A1.png" "neu:=1"
Zitat von @axelnick:
Der Variablen X ist kein wert zugewiesen.
Will ja das "X "durch "%counter_CV%" ersetzen.
Dann ist X auch keine Variable und du darfst dort entsprechend keine Prozentzeichen verwenden.Der Variablen X ist kein wert zugewiesen.
Will ja das "X "durch "%counter_CV%" ersetzen.
@echo off & setlocal enableDelayedExpansion
for %%i in ("%Vz%\ImageBase\zHitMeUp\*X*") do (
set "neu=%%~nxi"
Echo ren "%%~i" "!neu:X=%counter_CV%!"
)
Wenn die counter_CV-Variable jedoch innerhalb der Forschleife verändert wird, musst du stattdessen mit Funktionen arbeiten...
@echo off & setlocal enableDelayedExpansion
set counter_CV=1
for %%i in ("%Vz%\ImageBase\zHitMeUp\*X*") do call :doSomething "%%~i"
exit /b 0
:doSomething
set neu=%~1
echo ren "%~1" "!neu:X=%counter_CV%!"
set /a counter_CV+=1
exit /b 0