我目前正在研究旧的传统MS-DOS 6.22系统,现在需要调用不同的批处理文件,具体取决于C:上是否存在文件。
我在AUTOEXEC.BAT中放置了以下内容:
{{1}}
必须关闭一些东西,因为它似乎忽略了这个语句并且没有调用我指定的.BAT文件。这与IMGOK.TXT是否存在无关。 IMGOK.TXT是通过
创建的空文本文件
COPY NUL> IMGOK.TXT
我已经在语句周围尝试了括号和不带括号。
我是否遗漏了如何使用此IF EXIST ELSE语句的内容? 提前感谢您的帮助。
编辑:知道了,不能在DOS批处理文件中使用ELSE。不得不为我的不同电话使用IF EXISTS和IF NOT EXISTS。谢谢!答案 0 :(得分:4)
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