- ベストアンサー
コマンドプロンプトの条件分岐について
こんばんわ。 ちょっとした処理を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」が表示されてしまいます。 これは何故なんでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
if /? の説明に書いてあります。 if exist "C:\test\" (goto testa) else goto testb
その他の回答 (2)
- koko_u_u
- ベストアンサー率18% (216/1139)
if exist "C:\test\" (goto testa) else (goto testb)
お礼
この通りにやったら、できました。 ありがとうございました。
else なんてできましたっけ?
お礼
上の人のレスで、できるっぽいです。 参考になりました。
お礼
コマンドプロンプトでヘルプを見れるという事を 忘れていました。 参考になりました。 ありがとうございました。