我编写了一个简单的批处理文件,用于检查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”无法识别为内部或外部命令,可运行程序或批处理文件。
我不知道为什么。
答案 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