
我有一個應該在多個目錄中工作的批次檔:
它應該會尋找名為“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
。