
eu tenho um arquivo em lote que deve funcionar em vários diretórios:
deve procurar um arquivo chamado "folder.jpg". Se existir, deve usar isso. caso não exista, deverá usar "front.jpg" e copiá-lo para "cover.jpg". Parece simples.
O problema é que meus diretórios contêm espaços em branco (-).
O arquivo em lote a seguir produz um erro. Alguém pode me orientar, como obter um nome de arquivo que possa ser usado com o comando em lote "EXISTS"?
Também tentei "./folder.jpg" sem sucesso.
@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
Desde já, obrigado!
Responder1
Seu principal problema é que a sintaxe éIF EXIST
nome do arquivo(isto é, sem 's'). Quando os nomes de arquivos e pastas tiverem espaços, use aspas.
set file="%CD%\folder.jpg"
if exist %file% goto FOLDER
ou...
set file=%CD%\folder.jpg
if exist "%file%" goto FOLDER
Além disso, você realmente queria o set
comando simples na terceira linha de código? Parece um pouco solitário por si só.
Por fim, se tiver @echo off
no início do script, não é necessário colocar o @
símbolo no início de cada echo
comando.