• ベストアンサー

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

こんばんわ。 ちょっとした処理をbatファイルにまとめて実行しようとしているのですが コマンドプロンプトにはあまり馴染みが無い為、条件分岐処理のIfで納得が いかず、よく分からなかったのでこちらの有識者にご教授願いたいと思い 質問させて頂きました。 Cドライブ直下にtestというフォルダが存在するかしないかをEXISTで判定 してあれば「aaaa」、なければ「bbbb」という文字列をECHOを使ってプロン プトに表示するという至極単純なプログラムです。 if exist "C:\test\" goto testa if not exist "C:\test\" goto testb :testa echo aaaaa goto end :testb echo bbbbb :end pause exit /b 上記、プログラムをテキストファイルに保存後、拡張子をbatに変更して 実行すると、正しく「aaaa」と表示されます。 (C直下にtestフォルダがある前提で、なければ「bbbb」が表示されます。) しかし、最初の2行のIfを変更すると動作がおかしくなります。 変更後のIf if exist "C:\test\" goto testa else goto testb もしくは if exist "C:\test\" goto testa else goto testb この状態でC直下のtestフォルダを削除して実行すると「bbbb」が 表示されると思っていたのに「aaaa」が表示されてしまいます。 これは何故なんでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.3

if /? の説明に書いてあります。 if exist "C:\test\" (goto testa) else goto testb

qoo288
質問者

お礼

コマンドプロンプトでヘルプを見れるという事を 忘れていました。 参考になりました。 ありがとうございました。

その他の回答 (2)

  • koko_u_u
  • ベストアンサー率18% (216/1139)
回答No.2

if exist "C:\test\" (goto testa) else (goto testb)

qoo288
質問者

お礼

この通りにやったら、できました。 ありがとうございました。

noname#89072
noname#89072
回答No.1

else なんてできましたっけ?

qoo288
質問者

お礼

上の人のレスで、できるっぽいです。 参考になりました。

関連するQ&A