プロが教えるわが家の防犯対策術!

こんばんわ。
ちょっとした処理を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」が表示されてしまいます。

これは何故なんでしょうか?

A 回答 (3件)

if /? の説明に書いてあります。


if exist "C:\test\" (goto testa) else goto testb
    • good
    • 1
この回答へのお礼

コマンドプロンプトでヘルプを見れるという事を
忘れていました。

参考になりました。
ありがとうございました。

お礼日時:2009/06/20 23:04

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2009/06/20 23:01

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

    • good
    • 0
この回答へのお礼

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

お礼日時:2009/06/20 23:00

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!