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

标签 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
我已经尝试过在语句周围带括号和不带括号。

我是否遗漏了如何使用此 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/

相关文章:

java - DOS 批处理文件在专有 java 应用程序中输入命令并接收反馈?

windows - 当路径没有目录分隔符时会发生什么?

windows-7 - 在批处理文件中检查计算机是否已插入交流电源

windows - 如何使用批处理文件获得文件的独占锁?

command - 如何根据 DOS 中的常见模式编写脚本重命名多个文件?

dos - MSDOS "Hello World"EXE

user-input - 如何在汇编语言中进行字符串输入?

windows - 如何理解批处理中的表达式 "%PATH:;= %"

windows - Windows批量上传目录和文件到FTP

windows - 使用批处理文件打开多个 PDF 文档