
ich habe eine Batchdatei, die in mehreren Verzeichnissen funktionieren sollte:
Es sollte nach einer Datei namens „folder.jpg“ suchen. Wenn sie existiert, sollte sie verwendet werden. Wenn sie nicht existiert, sollte „front.jpg“ verwendet und nach „cover.jpg“ kopiert werden. Klingt einfach.
Das Problem ist, dass meine Verzeichnisse Leerzeichen (-) enthalten.
Die folgende Batchdatei erzeugt einen Fehler. Kann mir jemand erklären, wie ich einen Dateinamen bekomme, der mit dem Batchbefehl „EXISTS“ verwendet werden kann?
Ich habe auch "./folder.jpg" ohne Erfolg probiert.
@echo off
set file=%CD%\folder.jpg
set
if exists %file% goto FOLDER
:FRONT
@echo ** copy front.jpg to cover.jpg
copy front.jpg cover.jpg
goto PROCESS
:FOLDER
@echo ** rename folder.jpg to cover.jpg
ren folder.jpg cover.jpg
:PROCESS
@echo ** call dpi
call dpi
@echo ** call size
call size
Dank im Voraus!
Antwort1
Ihr Hauptproblem ist, dass die SyntaxIF EXIST
Dateiname(das heißt, kein „s“). Wenn Datei- und Ordnernamen Leerzeichen enthalten, verwenden Sie Anführungszeichen.
set file="%CD%\folder.jpg"
if exist %file% goto FOLDER
oder...
set file=%CD%\folder.jpg
if exist "%file%" goto FOLDER
Und wollten Sie wirklich den bloßen set
Befehl in der dritten Codezeile? Alleine wirkt er etwas einsam.
Wenn Sie es @echo off
am Anfang des Skripts haben, müssen Sie das @
Symbol nicht am Anfang jedes echo
Befehls platzieren.