
バッチファイルの内容
------------------------------------------------------------------------------------
@echo off
cls
rem メニュー選択画面
:menu
echo ****************************
echo * キー入力でメニュー選択 *
echo ****************************
echo.
echo 1.自宅環境(有線LAN・ADSL)
echo 2.モバイル環境(Bluetooth DUN設定)
echo 3.モバイル環境(Bluetooth PAN設定)
echo.
echo 99.終 了
echo.
set /p choice="現在の環境を上記番号より選択して下さい:"
rem 番号選択後の制御フロー
if "%choice%"=="1" (goto homelan)
if "%choice%"=="2" (goto btdnu)
if "%choice%"=="3" (goto btpan)
if "%choice%"=="99" (goto end)
goto error
:homelan
rem 自宅環境(有線LAN・ADSL) 選択時の制御
echo 1.自宅環境(有線LAN・ADSL)
rem モバイル環境(Bluetooth DUN設定)
:btdnu
echo 2.モバイル環境(Bluetooth DUN設定)
rem モバイル環境(Bluetooth PAN設定)
:btpan
echo 3.モバイル環境(Bluetooth PAN設定)
rem エラー時の制御
:error
cls
echo 入力エラー!:選択肢以外の番号が入力されました。正しい番号を再度入力して下さい。
goto menu
rem 終了時の制御
:end
exit
------------------------------------------------------------------------------------
上記のコードは、持ち歩き用に使っているPCでWindowsのログオン時に起動させる処理をコントロールするためにネット上の情報を元に勉強がてら自分で書いています。(あと、ちなみにDOS関連の知識はほとんどありません。)
batファイルで保存し、DOSプロンプトでテストをしていました。
IMEはオフにし、番号選択の「1」「2」「3」を10キーボードから入力すると、errorラベルに飛んでしまい、こちらが想定している正しい処理に飛びません。(ちなみに、「99」と入力したときは正しく処理されいています。)
どこにコーティング上のミスがあるのか判別がつかないため、ミスを犯しているポイントを教えていただけると幸いです。
また、カテゴリーを変更したほうがいいなどのアドバイスがありましたら、誘導していただけると幸いです。
どうかよろしくお願いしますm(__)m
No.1ベストアンサー
- 回答日時:
バッチ処理は正常に動作しています
分岐処理後に動作を停止する命令が無いだけです
例えば
条件分岐でA,B,ENDの分岐とします
バッチ処理の流れが
main
入力
条件分岐
Aの処理
Bの処理
エラー処理
END処理
とした場合、Aの処理の最後に処理を停止する命令がなければBの処理⇒エラー処理と進んでしまいます
試しに、END処理以外の条件処理の後にgoto menuを付け加えて試して見てください
:homelan
rem 自宅環境(有線LAN・ADSL) 選択時の制御
echo 1.自宅環境(有線LAN・ADSL)
goto menu
rem モバイル環境(Bluetooth DUN設定)
:btdnu
echo 2.モバイル環境(Bluetooth DUN設定)
goto menu
rem モバイル環境(Bluetooth PAN設定)
:btpan
echo 3.モバイル環境(Bluetooth PAN設定)
goto menu
こんな感じで
回答ありがとうございます。
回答のように処理を停止する内容(テスト中のため、一時的にmenuへ飛ぶようにしました。)を追記したところ、errorラベルに飛ぶことなく動作するようになりました。
私の想定だと処理分岐後、echo 「選択したメニュー名の表示」で処理が停止するものだと思っていましたが、そうでもなかったのですね… ^^; 勉強になりました。
これでテストを継続できます。即答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
突然カーソルが手の形に…
-
power pointで画像が表示できま...
-
壁紙が拡大されて表示される
-
秀丸エディタでマウスカーソル...
-
youtubeの下の方のメニュー表示...
-
クリッピングマスクの枠の外を...
-
jw_cadで消えない線があります...
-
エクセルの図形で弧を書く方法
-
in Designで一部のページにのみ...
-
エクセルで横軸の数字を縦書き...
-
JW 文字の後ろを白く着色したい
-
バツ印をつけるには??(ワード)
-
フォトショ、または、イラレで...
-
業務でiCAD MXを使うことになり...
-
指定範囲内で図形等を削除する...
-
EXCEL 一部のオブジェクトだ...
-
Office365 のExcelでオブジェク...
-
エクセルマクロでシート内にあ...
-
エクセルで図形やワードアート...
-
Yahooの 画面サイズの変更
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
突然カーソルが手の形に…
-
Wordを開くとカーソルが真ん中...
-
power pointで画像が表示できま...
-
テキストボックスのカーソル位...
-
Adobe Illustrator CSでプリン...
-
壁紙が拡大されて表示される
-
文字入力の時のカーソルの形が...
-
Real PlayerでレンタルDVDの...
-
エクスプローラーの表示について
-
仮想メモリーのDドライブに移動
-
リカバリ後の設定で
-
カーソルの周囲を薄く着色する方法
-
ワードパットにツールに線引き...
-
Excel 2019、これMicrosoft社の...
-
タスクバーにカーソルを合わせ...
-
秀丸エディタでマウスカーソル...
-
【Win】DOS バッチファイルの処...
-
Mac 勝手に変換
-
ビスタのノートパソコン、NEC L...
-
入力・出力言語について
おすすめ情報