usar EXIST en un lote en un archivo cuando el directorio actual contiene espacios en blanco

usar EXIST en un lote en un archivo cuando el directorio actual contiene espacios en blanco

Tengo un archivo por lotes que debería funcionar en varios directorios:

debería buscar un archivo llamado "carpeta.jpg". Si existe, debería usarlo. si no existe, debería usar "front.jpg" y copiarlo a "cover.jpg". Suena sencillo.

El problema es que mis directorios contienen espacios en blanco (-).

El siguiente archivo por lotes produce un error. ¿Alguien puede indicarme cómo obtener un nombre de archivo que pueda usarse con el comando por lotes "EXISTS"?

También probé "./folder.jpg" sin éxito.

@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

¡Gracias de antemano!

Respuesta1

Su principal problema es que la sintaxis esIF EXIST Nombre del archivo(es decir, sin 's'). Cuando los nombres de archivos y carpetas tengan espacios, utilice comillas.

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

o...

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

Además, ¿realmente querías el setcomando simple en la tercera línea de código? Parece un poco solitario por sí solo.

Finalmente, si lo tiene @echo offal inicio del script, no es necesario que coloque el @símbolo al inicio de cada echocomando.

información relacionada