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-Key: 129958

Url: https://administrator.de/contentid/129958

Printed on: April 25, 2024 at 06:04 o'clock

Mitglied: 60730
60730 Nov 22, 2009 at 14:20:21 (UTC)
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ß
Member: miniversum
miniversum Nov 22, 2009 at 16:57:01 (UTC)
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
Mitglied: 60730
60730 Nov 22, 2009 at 19:04:45 (UTC)
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ß.
Member: miniversum
miniversum Nov 22, 2009 at 19:16:13 (UTC)
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.
Member: drifting
drifting Nov 23, 2009 at 09:53:03 (UTC)
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
Mitglied: 60730
60730 Nov 23, 2009 at 21:51:02 (UTC)
Goto Top
Hallo,

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

Gruß