2010-03-11 307 views
1

我寫了一個簡單的批處理文件,它檢查c盤路徑是否存在,然後在該路徑中執行exe,否則嘗試d盤路徑並執行它。批處理命令獲取錯誤

IF EXIST c:\program files\x goto a 

ELSE goto b 


:a 
cd c:\program files\x 

executable.exe c:\temp\col.zip 


:b 
cd d:\program files\x 

executable.exe c:\temp\col.zip 

林收到這個錯誤:

----錯誤Ouput--「ELSE」不被識別爲一個內部或外部的命令,可操作的程序或批處理文件。該系統找不到指定的路徑。 'executable.exe'不被識別爲內部或外部命令,可操作程序或批處理文件。 'dellsysteminfo.exe'不被識別爲內部或外部命令,可操作程序或批處理文件。

我不知道爲什麼。

回答

0

錯誤信息是不言自明的,在批處理文件中沒有ELSE這樣的東西。但是,由於它是GOTO,所以完全沒有必要。

IF EXIST c:\program files\x goto a 

goto b 

如果它超過第一行,它本質上是一個其他的。

至於其他錯誤,它們與找不到您要執行的文件有關。批處理文件是區分大小寫的,所以你需要修復的文件/文件夾名的大寫到實際系統相匹配。

+0

我可以修復其他更正,想要感謝你。 但第二個錯誤仍然存​​在。我提供了實際的確切路徑,但由於某些原因,錯誤持續到來 – alice7 2010-03-11 23:52:31

+0

您不能,錯誤是直接說文件不存在。 – 2010-03-11 23:59:31

+0

它具有32位或64位machine.Because我可以看到文件的事,因爲我下載的文件到該路徑。 – alice7 2010-03-12 00:02:19

0

是的,世界上沒有多的if/else,只是這樣做

IF EXIST c:\program files\x goto a 
goto b 

:a 
cd c:\program files\x 
executable.exe c:\temp\col.zip 
rem don't you want a goto here?? 


:b 
cd d:\program files\x 
executable.exe c:\temp\col.zip 
+0

我是能夠解決的第一個錯誤,但如果我提供的絕對路徑的第二個錯誤仍然exist.Even。 – alice7 2010-03-11 23:56:06

+1

查看JRL的答案。你可以很容易地使它成爲多行,然而,'else'必須與'if'出現在相同的行上(或者在'if'後面打開的塊的結尾)。是的,這在文檔中有點令人困惑。 – Joey 2010-03-12 00:47:37