Configuration 批处理命令获取错误

Configuration 批处理命令获取错误,configuration,command-line,batch-file,dos,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 我收到这个错误: ----错误输出--“EL

我编写了一个简单的批处理文件,检查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“”未被识别为内部或外部命令、可操作程序或批处理文件


我不知道为什么。

错误消息是不言自明的,批处理文件中没有
ELSE
。但是,由于它是一个
GOTO
,因此完全没有必要

IF EXIST c:\program files\x goto a

goto b
如果它通过了第一行,它本质上就是一个else


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

错误消息是不言自明的,批处理文件中不存在
ELSE
这类内容。但是,由于它是一个
GOTO
,因此完全没有必要

IF EXIST c:\program files\x goto a

goto b
如果它通过了第一行,它本质上就是一个else


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

是的,没有多行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

是的,没有多行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

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

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

有关详细信息,请参阅,或参阅。

其他项必须位于同一行。将其更改为:

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

有关更多详细信息,请参阅。

我能够修复else更正,为此我要感谢您。但第二个错误仍然存在。我提供了实际的确切路径,但由于某些原因,错误不断出现。你不可能是,错误直接表明该文件不存在。这是否与32位或64位计算机有关。因为我可以看到该文件,因为我将文件下载到了该路径中。64位Windows为32位应用程序添加了第二个程序文件目录。你确定你的目标是对的吗?32位应用程序称为“程序文件(x86)”,批处理文件不区分大小写。整个答案都是胡说八道。对于
cd
,引号是不必要的-同样,请参阅帮助:“
CHDIR
命令不将空格视为分隔符,因此可以将
cd
放入包含空格的子目录名中,而不必在名称周围加引号。”。我可以修复else更正,谢谢您。但第二个错误仍然存在。我提供了实际的确切路径,但由于某些原因,错误不断出现。你不可能是,错误直接表明该文件不存在。这是否与32位或64位计算机有关。因为我可以看到该文件,因为我将文件下载到了该路径中。64位Windows为32位应用程序添加了第二个程序文件目录。你确定你的目标是对的吗?32位应用程序称为“程序文件(x86)”,批处理文件不区分大小写。整个答案都是胡说八道。对于
cd
,不需要引号-同样,请参阅帮助:“
CHDIR
命令不将空格视为分隔符,因此可以将
cd
插入包含空格的子目录名中,而不必在名称周围加引号。”。我能够修复第一个错误,但第二个错误仍然存在。即使我提供了绝对路径。请参阅JRL的答案。您可以轻松地将其设置为多行,但是,
else
必须与
if
显示在同一行上(或者在
if
之后打开的块的末尾)。是的,文档中有点混乱。我能够修复第一个错误,但第二个错误仍然存在。即使我提供了绝对路径。请参阅JRL的答案。您可以轻松地将其设置为多行,但是,
else
必须与
if
显示在同一行上(或者在
if
之后打开的块的末尾)。是的,文档中有点混乱。