我有以下批处理脚本:
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
SET directoryContainsFiles=%~f1
ECHO %directoryContainsFiles%
IF NOT EXIST directoryContainsFiles (
ECHO "ERROR: 1. Argument -> Directory which should contain source files not found!"
EXIT /B 1
)
当我运行命令
rename_media_files.cmd "G:\Projects\Rename Batch Script\testfolder\source"
(在cmd.exe - Windows 10 64位上)时,如果目录确实存在,则directoryContainsFiles
获取echo
d正确(G:\Projects\Rename Batch Script\testfolder\source
)但IF NOT EXIST
子句不起作用,因为我总是得到错误消息:ERROR: 1. Argument ...
。
我也尝试在目录路径中使用结尾反斜杠调用脚本:
rename_media_files.cmd "G:\Projects\Rename Batch Script\testfolder\source\"
我也尝试过(使用和不使用反斜杠)来检查nul文件:
IF NOT EXIST directoryContainsFiles/nul
。
有什么问题?
感谢您的帮助。
答案 0 :(得分:3)
尝试此修改:
@ECHO OFF
SETLOCAL ENABLEEXTENSIONS
SET "directoryContainsFiles=%~f1"
ECHO=%directoryContainsFiles%
IF NOT EXIST "%directoryContainsFiles%\" (
ECHO "ERROR: 1. Argument -> Directory which should contain source files not found!"
EXIT /B 1
)
但是我认为首先没有SET
变量的理由:
@ECHO OFF
ECHO=%~f1
IF NOT EXIST "%~f1\" (
ECHO "ERROR: 1. Argument -> Directory which should contain source files not found!"
EXIT /B 1
)