批处理命令获取错误

时间:2010-03-11 23:32:05

标签: configuration command-line batch-file dos

我编写了一个简单的批处理文件,用于检查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

我收到此错误:

----错误输出 - 'ELSE'不被识别为内部或外部命令,可操作程序或批处理文件。该系统找不到指定的路径。 'executable.exe'无法识别为内部或外部命令,可运行程序或批处理文件。 “dellsysteminfo.exe”无法识别为内部或外部命令,可运行程序或批处理文件。

我不知道为什么。

3 个答案:

答案 0 :(得分:10)

ELSE必须在同一条线上。将其更改为:

IF EXIST c:\program files\x (
  goto a
) ELSE (
  goto b
)

有关详细信息,请参阅this tutorial,或参阅this Microsoft documentation

答案 1 :(得分:0)

错误消息非常明显,批处理文件中没有ELSE这样的东西。但是,因为它是GOTO,所以完全没必要。

IF EXIST c:\program files\x goto a

goto b

如果它超过了第一行,那么它本身就是一个别的。

至于其他错误,它们与找不到您尝试执行的文件有关。批处理文件区分大小写,因此您需要修复文件/文件夹名称的大小写以匹配实际系统。

答案 2 :(得分: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