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

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

Printed on: April 20, 2024 at 02:04 o'clock

Member: ricardobohner
Solution ricardobohner May 01, 2020 at 23:53:16 (UTC)
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%!"
Member: AN34Mem
AN34Mem May 02, 2020 at 03:37:33 (UTC)
Goto Top
Das es an simplen Anführungsstrichen gelegen hat, darauf wäre ich jetzt nicht gekommen.
Vielen Dank! Endlich funktioniert es.