an34mem
Goto Top

DOS Skript - Leerzeichen im Dateiname (wird nicht gefunden)

Hallo.
Leider komme ich nicht weiter, und hoffe das vielleicht jemand einen Tipp hat.
Das Problem ist, dass zwar der Dateiname umbenannt wird, aber besteht dieser mit einem Leerzeichen funktioniert es nicht mehr.

Beispiel: "dasistdiedatei.abc.txt"
Neu: "dasistdiedatei.txt"
Das funktioniert.

Anderes Beispiel:
Beispiel: "geht nicht.abc.txt"
Neu: Eine Umbenennung erfolgt nicht!

Das Skript:
Die Dateien werden per drag & drop geändert:
:next
if "%~1" == "" goto done

Setlocal enabledelayedexpansion

Set "vorher=.abc.txt"
Set "nachher=.txt"

for %%# in ("%~1") do (
set "datei=%%~nx#"
rename "%%#" "!datei:%vorher%=%nachher%!"
)

shift
goto next
:done
exit
Danke für eine Hilfestellung.

Content-ID: 569022

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

Ausgedruckt am: 19.11.2024 um 05:11 Uhr

ricardobohner
Lösung ricardobohner 02.05.2020 um 01:53:16 Uhr
Goto Top
Zuviele Anführunsstichen. Wenn eine datei ein Leerzeichen hat und du sie zum batch ziehst fügt windows automatisch Anführungsstrichen hinzu in %~1 und du hängst dann nochmal extra Anführungstrichen hinzu. Ergebniss:

rename ""%userprofile%\desktop\geht nicht.abc.txt"" "geht nicht.txt"

Also einfach diese linie:
rename "%%#" "!datei:%vorher%=%nachher%!"

So ändern:
rename %%# "!datei:%vorher%=%nachher%!"
AN34Mem
AN34Mem 02.05.2020 um 05:37:33 Uhr
Goto Top
Das es an simplen Anführungsstrichen gelegen hat, darauf wäre ich jetzt nicht gekommen.
Vielen Dank! Endlich funktioniert es.