• 締切済み

コマンドプロンプトの条件分岐について

コマンドプロンプトで以下の処理を作成したのですが、 二つ目の「if exist」が動作しません。 何か間違っているのでしょうか? ------------------------------------------------------------- if exist "C:XXX" ( goto TEST ) else goto END :TEST if exist "C:XXX" ( goto TEST2 ) else goto END :PTT goto END :END ------------------------------------------------------------- よろしくお願いします。

みんなの回答

  • jam-best
  • ベストアンサー率27% (94/344)
回答No.4

特に問題なく動きますよ。 TESTの後にpauseつけて動作確認のやり方がわかるのであれば、TEST2の後にもpauseをつけてみればわかると思いますが…。余計な処理を一回省いてif文とpauseだけのバッチを作れば確認できます。 とりあえずif文に関しては間違ってはいませんので他の処理に問題があるかと。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.3

今回の事例では、階層構造の条件分岐ではなく、単純な条件分岐を繰り返しているだけですから、1つめの if も、2つめの if も同等に処理されます。 ※2番目の条件設定を、見直されることをお勧めします。

ovachama
質問者

お礼

ご返答ありがとうございます。 見直してみます。

  • DIooggooID
  • ベストアンサー率27% (1730/6405)
回答No.2

二つ目の「if exist」が動作するためには、 まず、( goto TEST ) が動作する条件を満足しなければなりませんが、 これは、十分ですか? また ( goto TEST2 )   という記述がありますが、 :TEST2 が 存在していません。

ovachama
質問者

補足

ご返答ありがとうございます。 質問内容に誤りがあります。 誤)「:PTT」 正)「:TEST2」 ( goto TEST ) が動作する条件は満たしています。 「:TEST」のように、if分岐でgotoに遷移した後にさらにif文は使用できるのでしょうか?

  • OMEGAT
  • ベストアンサー率70% (455/642)
回答No.1

どのうように動作しないのか分からないのですが、 "C:XXX" は実際には "C:\XXX" のように"\"が付いていますか? また:TEST2というtラベルは実際には存在しているのでしょうか?

ovachama
質問者

補足

すいません上記質問の「:PTT」が「TEST2」です。 "C:XXX" は実際には "C:\XXX" のように"\"が付いており、正しいパスを指定しています。 動作しないというのは、「:TEST」の後にpauseを付けると停止しますが、その後に記述した処理が実行されないので、「:TEST」内のif existが動作していないのではということです。 説明不足で申し訳ありませんでした。 よろしくお願いします。

関連するQ&A