当当前目录包含空格时在文件上批处理中使用 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

相关内容