drifting
Goto Top

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

Content-ID: 129958

Url: https://administrator.de/forum/dateiname-kuerzen-129958.html

Ausgedruckt am: 22.04.2025 um 07:04 Uhr

60730
60730 22.11.2009 um 15:20:21 Uhr
Goto Top
Servus,

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
miniversum 22.11.2009 um 17:57:01 Uhr
Goto Top
Oder, ohne temponäte datei, in einer unterprozedur:
for %%i in ("%CD%\*.txt") do call:kuerzen "%%i  
goto:eof

:kuerzen
set "Name=%~1"  
set "newname=%Name:~0,-18%"  
rename "%Name%" "%newname%"  
goto:eof
60730
60730 22.11.2009 um 20:04:45 Uhr
Goto Top
@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ß.
miniversum
miniversum 22.11.2009 um 20:16:13 Uhr
Goto Top
Die anforderung hat er ja nicht, oder?
Aber da kann man auch bei meiner Version ne Datei mitschreiben lassen wenn man das will.
drifting
drifting 23.11.2009 um 10:53:03 Uhr
Goto Top
Hallo,

erstmal Danke euch beiden.
Es funktioniert leider immer noch nicht.
Das Problem liegt glaube ich in der Zeile
set "newname=%Name:~0,-18%"
wenn ich statt dessen direkt irgendeinen Namen eingebe, also z.B. set "newname=hallo" dann wird die Datei umbenannt. Aber das kürzen des Namens klappt leider nicht.

Grüße
60730
60730 23.11.2009 um 22:51:02 Uhr
Goto Top
Hallo,

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

Gruß