42583

Datei umbenennen geht irgendwie nicht, Problem mit Setlocal und Co warscheinlich

geschlossengelöstFrageBatch, Shell Entwicklung
Hallo,

ich habe in einer Textdatei (NEWFILES1.txt) diverse (nicht statische) Dateinamen stehen, die ich weiterverarbeiten möchte, davor müssen diese aber umbenannt werden (in der Textdatei). Jede Datei muss im Format "dateiname.xy_" umbeannnt werden, wohlgemerkt im Textfile. Dazu habe ich folgenden Quelltext entwickelt.

setlocal enabledelayedexpansion
set endung=
for /F "tokens=1,2 delims=." %%i in (NEWFILES1.txt) do (
set endung=%%j
echo..!endung:~0,2!_>>STRICHLISTE.txt
)
setlocal disabledelayedexpansion
oder endlocal (beides getestet)

Warum gibt er mir jedesmal !endung:~0,2!_ aus oder garnichts, manchmal sind auch die ! verschwunden aber trotzdem ähnliches Ergebnis. Ich habe auch schon alles probiert, diesen Qulltext mit diversen Anderen verglichen oder das File mit cmd /v:on /k programmname.cmd aufgerufen aber es will einfach nicht wunktionieren. Der andere Qulltext im Batchfile kann keine Ursache sein, habe ihn auch testweise rausgenommen, aber ohne Erfolg.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 50408

Url: https://administrator.de/forum/datei-umbenennen-geht-irgendwie-nicht-problem-mit-setlocal-und-co-warscheinlich-50408.html

Ausgedruckt am: 10.06.2025 um 14:06 Uhr

Biber
Biber 01.02.2007 um 11:55:53 Uhr
Goto Top
Moin gunnar-hro,

willkommen im Forum.

Du darfst natürlich keinen Punkt direkt nach dem "ECHO" (vor dem Ausrufungszeichen der Delayed-Expanded-Variablen) machen.
GEHT: echo !endung:~0,2!_>>....
GEHT: echo. !endung:~0,2!_>>....
GEHT: echo .!endung:~0,2!_>>....


GEHT IN DIE GRÜTZE: echo.!endung:~0,2!_>>....
GEHT IN DIE GRÜTZE: echo..!endung:~0,2!_>>....

[Bug #3211 im M$-CMD-Interpreter]

Gruss
Biber
42583
42583 01.02.2007 um 12:17:29 Uhr
Goto Top
vielen Dank, es scheint zu funktionieren. Dummer Fehler von mir, aber dass man hinter dem Punkt trotzdem einen frei lassen muss war mir neu. Nochmals vielen Dank.