Batch file 在DOS 6.22批处理文件中忽略IF EXIST ELSE的问题

Batch file 在DOS 6.22批处理文件中忽略IF EXIST ELSE的问题,batch-file,dos,Batch File,Dos,我目前正在使用一个旧的遗留MS-DOS 6.22系统,该系统现在需要调用不同的批处理文件,具体取决于C:.上是否存在文件。 我在AUTOEXEC.BAT中放置了以下内容: IF EXIST C:\IMGOK.TXT (BOOT.BAT) ELSE (LOADIMG.BAT) 某些内容必须关闭,因为它似乎忽略了此语句,并且没有调用我指定的.BAT文件。这与IMGOK.TXT是否存在无关。IMGOK.TXT是通过 复制NUL>IMGOK.TXT 我试过在语句前后加括号和不加括号 我是否遗漏了一些关

我目前正在使用一个旧的遗留MS-DOS 6.22系统,该系统现在需要调用不同的批处理文件,具体取决于C:.上是否存在文件。
我在AUTOEXEC.BAT中放置了以下内容:

IF EXIST C:\IMGOK.TXT (BOOT.BAT) ELSE (LOADIMG.BAT)
某些内容必须关闭,因为它似乎忽略了此语句,并且没有调用我指定的.BAT文件。这与IMGOK.TXT是否存在无关。IMGOK.TXT是通过
复制NUL>IMGOK.TXT
我试过在语句前后加括号和不加括号

我是否遗漏了一些关于如何使用IF-EXIST-ELSE语句的内容? 提前谢谢你的帮助


编辑:明白了,不能在DOS批处理文件中使用ELSE。对于我的不同呼叫,必须使用IF EXISTS和IF NOT EXISTS。谢谢

MS-DOS不支持ELSE关键字。它也不支持使用括号对命令进行分组。这意味着如果文件
C:\IMGOK.TXT
存在,那么命令
(BOOT.BAT
将使用参数
ELSE(LOADIMG.BAT)
执行。因为您可能没有名为
(BOOT.BAT
的文件,如果
C:\IMGOK.TXT
存在,则会导致错误,如果不存在,则不执行任何操作

解决问题的一个简单方法是使用两个IF语句:

 IF EXIST C:\IMGOK.TXT BOOT.BAT
 IF NOT EXIST C:\IMGOK.TXT LOADIMG.BAT
由于运行
BOOT.BAT
将结束对
AUTOEXEC.BAT
中命令的进一步处理,您还可以执行以下操作:

 IF EXIST C:\IMGOK.TXT BOOT.BAT
 LOADIMG.BAT

你试过用
call
而不是直接加载
.bat
文件吗?MS-DOS不支持ELSE或用括号分组命令。我只是试了一下,没有运气:如果存在C:\IMGOK.TXT call BOOT.bat ELSE调用LOADIMG.batt就是它。没有意识到DOS批处理文件不能使用ELSE。