我目前正在使用旧的 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
存在,则使用参数 ELSE (LOADIMG.BAT)
执行命令 (BOOT.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
关于batch-file - DOS 6.22 批处理文件中忽略 IF EXIST ELSE 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43856970/