Dateiname kürzen
Hallo,
ich habe eine Menge Textdateien mit sehr langen Dateinamen. Ich möchte einen Batch schreiben, der mir die letzten 18 Zeichen aus dem Dateinamen rauslöscht. Mein bisheriger Versuch sieht folgendermaßen aus:
for %%i in ("%CD%\*.txt") do (
set "Name=%%i"
set "newname=%Name:~0,-18%"
rename "%Name%" "%newname%"
)
leider funktioniert das nicht und ich weiß nicht wieso. Ich wäre dankbar, wenn mir jemand helfen könnte, meine Batcherfahrung ist nämlich sehr begrenzt.
Grüße,
drifting
ich habe eine Menge Textdateien mit sehr langen Dateinamen. Ich möchte einen Batch schreiben, der mir die letzten 18 Zeichen aus dem Dateinamen rauslöscht. Mein bisheriger Versuch sieht folgendermaßen aus:
for %%i in ("%CD%\*.txt") do (
set "Name=%%i"
set "newname=%Name:~0,-18%"
rename "%Name%" "%newname%"
)
leider funktioniert das nicht und ich weiß nicht wieso. Ich wäre dankbar, wenn mir jemand helfen könnte, meine Batcherfahrung ist nämlich sehr begrenzt.
Grüße,
drifting
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 129958
Url: https://administrator.de/forum/dateiname-kuerzen-129958.html
Ausgedruckt am: 22.04.2025 um 07:04 Uhr
6 Kommentare
Neuester Kommentar

Servus,
in einer "for" schleife mag set nicht so - wie es soll.
siehe:
Das echo bleibt "leer" - bzw Echo on kommt.
Oder mit einer "Temporären" batch den Kram auffangen - ich hatte neulich auch wieder so einen fall, wo es auch mit gesetztem delayedexpansion nicht wollte..
Gruß
in einer "for" schleife mag set nicht so - wie es soll.
siehe:
for %%i in ("%CD%\*.txt") do (
set "Name=%%i"
set "newname=%Name:~0,-18%"
echo "%Name%" -"%Newname%"
rename "%Name%" "%newname%"
)
Das echo bleibt "leer" - bzw Echo on kommt.
setlocal enabledelayedexpansion
und ansattt den beiden%%
diese nutzen!!
Oder mit einer "Temporären" batch den Kram auffangen - ich hatte neulich auch wieder so einen fall, wo es auch mit gesetztem delayedexpansion nicht wollte..
if exist temp.cmd del temp.cmd
for %%i in ("%CD%\*.txt") do (
echo set "newname=%%i:~0,-18%%" >>temp.cmd
echo rename "%%i" "%%newname%%" >>temp.cmd
)
temp.cmd
Gruß

@miniversum:
jau - wobei die Tampon Datei den Vorteil hat, dass man später nachforschen kann - wie denn die eine (evtl, falsch umbenamste) Datei im Ursprung mal hieß.
jau - wobei die Tampon Datei den Vorteil hat, dass man später nachforschen kann - wie denn die eine (evtl, falsch umbenamste) Datei im Ursprung mal hieß.

Hallo,
Gruß
- welches der Beispiele hast du denn genommen?
- wie sieht - wenn es die temp. Datei war - der Inhalt der selbigen aus?
Gruß