Batch file 执行批处理文件时,IF条件下的命令语法不正确
在下面的代码中,我得到的命令语法是不正确的错误。很可能是在第一个IF语句中。但有时它工作得很顺利。不知道为什么?请帮忙Batch file 执行批处理文件时,IF条件下的命令语法不正确,batch-file,Batch File,在下面的代码中,我得到的命令语法是不正确的错误。很可能是在第一个IF语句中。但有时它工作得很顺利。不知道为什么?请帮忙 @ECHO OFF IF "%~1" == "" ( ECHO Please provide file location GOTO End ) ELSE ( echo %1 SET FILE=%1 IF NOT EXIST %FILE% ( ECHO Invalid File. Please provide correct
@ECHO OFF
IF "%~1" == "" (
ECHO Please provide file location
GOTO End
) ELSE (
echo %1
SET FILE=%1
IF NOT EXIST %FILE% (
ECHO Invalid File. Please provide correct path of file.
GOTO End
)
echo file found
)
:End
echo End of script
在括号内设置变量时,需要延迟展开。该变量保持未定义状态,直到括号结束,cmd解析器看到:
IF NOT EXIST (
ECHO Invalid File. Please provide correct path of file.
GOTO End
)
这是在执行if
之前检测到的语法错误
括号?这可能会产生误导。你是说“括号”吗( )
IF NOT EXIST (
ECHO Invalid File. Please provide correct path of file.
GOTO End
)