Batch file 执行批处理文件时,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

在下面的代码中,我得到的命令语法是不正确的错误。很可能是在第一个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 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
        )