2014-08-27 35 views
2

在下面的代码中,我得到该命令的语法不正确的错误。最有可能在第一次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 
+0

%〜1应该是%1 – Donal 2014-08-27 13:49:32

回答

2
@ECHO OFF 
setlocal enableDelayedExpansion 
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 
endlocal 

为您设置brackets.The变量中的变量需要延迟扩展撑不定,直到支架和CMD解析器结束看到:

IF NOT EXIST (
      ECHO Invalid File. Please provide correct path of file. 
      GOTO End 
     ) 

这是一个语法错误检测在执行if之前。

link1 link2

+0

由于@npocmaka !!!!它的工作:) – Sikandar 2014-08-27 14:11:05

+0

方括号?这可能会引起误解。认为你的意思是'括号'? =() – bshea 2016-07-27 19:19:00

相关问题