usando EXIST em um lote em um arquivo quando o diretório atual contém espaços em branco

usando EXIST em um lote em um arquivo quando o diretório atual contém espaços em branco

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 setcomando simples na terceira linha de código? Parece um pouco solitário por si só.

Por fim, se tiver @echo offno início do script, não é necessário colocar o @símbolo no início de cada echocomando.

informação relacionada