Batch file 在DOS 6.22批处理文件中忽略IF EXIST ELSE的问题
我目前正在使用一个旧的遗留MS-DOS 6.22系统,该系统现在需要调用不同的批处理文件,具体取决于C:.上是否存在文件。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 我试过在语句前后加括号和不加括号 我是否遗漏了一些关
我在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。