2017-05-08 1 views
2

現在、C:にファイルが存在するかどうかによって異なるバッチファイルを呼び出す必要がある古いレガシーMS-DOS 6.22システムで作業しています。
私は、AUTOEXEC.BATに次のように置か:この文を無視し、私は指定された.BATファイルのどちらを呼び出しているように見えるので、DOS 6.22でIF EXIST ELSEが無視されるバッチファイル

IF EXIST C:\IMGOK.TXT (BOOT.BAT) ELSE (LOADIMG.BAT) 

何かがオフでなければなりません。これは、IMGOK.TXTが存在するかどうかにかかわらずです。 IMGOK.TXTは、
によって作成された空のテキストファイルです。COPY NUL> IMGOK.TXT
私は、ステートメントのまわりに括弧を入れても使わなくても試してみました。

このIF EXIST ELSEステートメントの使い方に何か不足していますか? ご協力いただきありがとうございます。

EDIT:ELSEをDOSバッチファイルで使用することはできません。 IF EXISTSを使用していて、別の通話には存在しない場合。ありがとう!

+1

あなたが試してみました'.bat'ファイルを直接読み込む代わりに' call'を使用していますか? –

+2

MS-DOSは、カッコでELSEコマンドまたはグループ化コマンドをサポートしていません。 –

+0

私はちょうどそのショットと運を与えた:存在していれば:\ IMGOK.TXTコールブーツBAT.BAT ELSE CALL LOADIMG.BAT –

答えて

4

MS-DOSはELSEキーワードをサポートしていません。また、カッコを使用してコマンドをグループ化することもサポートしていません。つまり、ファイルC:\IMGOK.TXTが存在する場合、コマンド(BOOT.BATが引数ELSE (LOADIMG.BAT)で実行されます。 (BOOT.BATという名前のファイルがない可能性が高いので、C:\IMGOK.TXTが存在するとエラーが発生し、そうでない場合は何もしません。

あなたの問題を解決する簡単な方法は、IF文2を使用することです:

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

BOOT.BATAUTOEXEC.BATのコマンドのさらなる処理を終了する実行しているので、あなたも行うことができます。

IF EXIST C:\IMGOK.TXT BOOT.BAT 
LOADIMG.BAT 
関連する問題