
У меня есть пакетный файл, который должен работать в нескольких каталогах:
он должен искать файл с именем "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
команды.