バッチファイルの内容
------------------------------------------------------------------------------------
@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で質問しましょう!
似たような質問が見つかりました
- ルーター・ネットワーク機器 echoshow8の音声をBluetoothを介してパソコンで出力するやり方を教えて下さい。 3 2023/04/03 17:09
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
- UNIX・Linux Linuxのbash環境下です。 1 2022/11/27 12:31
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- Windows 10 再起動後 Pinが使用できず、PC(windows11)にサインインできない 3 2022/08/30 20:53
- 確定申告 e-Taxってどうやって使うんですか? 3 2023/03/07 18:39
- Visual Basic(VBA) VBA 参照先で選んだファイルをコピーし、出力先に別名で保存したい 8 2022/05/13 20:37
- その他(生活家電) Amazon Echo 独立運用は可能か? 2 2022/08/06 21:11
- その他(プログラミング・Web制作) ログインシェル時のSHELL環境変数 1 2022/06/08 19:21
- 防犯カメラ・監視カメラ・小型カメラ 見守りカメラとしてecho show 常時接続 高齢の親がいる実家と、離れてくらす自分の家の双方に 2 2023/05/19 06:50
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
突然カーソルが手の形に…
-
Wordを開くとカーソルが真ん中...
-
power pointで画像が表示できま...
-
テキストボックスのカーソル位...
-
【Win】DOS バッチファイルの処...
-
クリッピングマスクの枠の外を...
-
エクセルで図形やワードアート...
-
jw_cadで消えない線があります...
-
Office365 のExcelでオブジェク...
-
EXCEL 一部のオブジェクトだ...
-
指定範囲内で図形等を削除する...
-
バツ印をつけるには??(ワード)
-
エクセルの図形で弧を書く方法
-
Excel組織図を横に展開する方法...
-
google spread sheet で拡大表...
-
jwcadで図形を簡単に水平にする...
-
Photoshopでパスを同じ形のまま...
-
autocadで円の中心に文字を書く...
-
autoCADで三辺を指定して三角形...
-
Excel に貼り付けた図形が、勝...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
突然カーソルが手の形に…
-
power pointで画像が表示できま...
-
テキストボックスのカーソル位...
-
Wordを開くとカーソルが真ん中...
-
壁紙が拡大されて表示される
-
Adobe Illustrator CSでプリン...
-
秀丸エディタでマウスカーソル...
-
【Win】DOS バッチファイルの処...
-
Win10の隠れている[ファイル名...
-
アドレスの名前をあいうえお順...
-
一太郎の画面
-
DELキーを押し続けても反応が遅い
-
ATOKが学習しない
-
文字入力の時のカーソルの形が...
-
リアルプレーヤーが常駐してし...
-
Windowsセキュリティ 警告表示...
-
word2007 行内に設定すると図が...
-
タスクバーにカーソルを合わせ...
-
クリッピングマスクの枠の外を...
-
jw_cadで消えない線があります...
おすすめ情報