использование EXIST в пакете для файла, когда текущий каталог содержит пробелы

использование EXIST в пакете для файла, когда текущий каталог содержит пробелы

У меня есть пакетный файл, который должен работать в нескольких каталогах:

он должен искать файл с именем "folder.jpg". Если он существует, он должен использовать его. Если он не существует, он должен использовать "front.jpg" и скопировать его в "cover.jpg". Звучит просто.

Проблема в том, что мои каталоги содержат пробелы ( - ).

Следующий пакетный файл выдает ошибку. Может ли кто-нибудь подсказать мне, как получить имя файла, которое можно использовать с пакетной командой "EXISTS"?

Я также пробовал "./folder.jpg", но безуспешно.

@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

Заранее спасибо!

решение1

Ваша главная проблема в том, что синтаксисIF EXIST имя файла(то есть без 's'). Если в именах файлов и папок есть пробелы, используйте кавычки.

set file="%CD%\folder.jpg"
if exist %file% goto FOLDER

или...

set file=%CD%\folder.jpg
if exist "%file%" goto FOLDER

И еще, вы действительно хотели голую setкоманду в третьей строке кода? Она выглядит немного одиноко сама по себе.

Наконец, если @echo offв начале скрипта стоит символ , то нет необходимости ставить @его в начале каждой echoкоманды.

Связанный контент