目前目錄包含空格時在檔案上批次使用 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

相關內容