Verwenden von EXIST in einem Batch für eine Datei, wenn das aktuelle Verzeichnis Leerzeichen enthält

Verwenden von EXIST in einem Batch für eine Datei, wenn das aktuelle Verzeichnis Leerzeichen enthält

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 setBefehl in der dritten Codezeile? Alleine wirkt er etwas einsam.

Wenn Sie es @echo offam Anfang des Skripts haben, müssen Sie das @Symbol nicht am Anfang jedes echoBefehls platzieren.

verwandte Informationen