2014-08-27 30 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

相關問題