我有一个可以在多个目录中工作的批处理文件:
它应该寻找一个名为“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
。