
バッチファイルの内容
------------------------------------------------------------------------------------
@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ランキング
-
WindowsXPを最近のパソコンに...
-
絶対にいけるWindowsXPsp3の無...
-
Windows 11 のウィンドゥのうっ...
-
windowsXPでしか起動できないゲ...
-
エクセルのカメラ機能について...
-
印刷スープラがすぐに停止する
-
Windows XP SP3のインストール...
-
アウトルックを「タスクバー」...
-
windowsのインストールにてISO...
-
フリープリントソフト「かんた...
-
XPがインストールできない
-
パソコン起動時に謎のエラー画...
-
win 10 のログイン時に不要なユ...
-
Windows xpにWindows10を無理や...
-
最近、パソコンを起動するとこ...
-
エクセルでの文字入力がIMEでし...
-
XPが起動しない、バックアップ...
-
コンピュータが数秒毎に更新さ...
-
パソコンが操作できなくなりま...
-
windows10 フォルダを上書きす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
WindowsXPを最近のパソコンに...
-
絶対にいけるWindowsXPsp3の無...
-
Windows 11 のウィンドゥのうっ...
-
Windows XP SP3のインストール...
-
印刷スープラがすぐに停止する
-
アウトルックを「タスクバー」...
-
windowsXPでしか起動できないゲ...
-
XPがインストールできない
-
エクセルのカメラ機能について...
-
PCのエクセルなどのショートカ...
-
WindowsXPのプロダクトキーを紛...
-
windowsのインストールにてISO...
-
パソコンでCDを見たい、見る...
-
パソコンが操作できなくなりま...
-
やっぱり現代のPCにWindowsXPを...
-
Windows xpにWindows10を無理や...
-
最近、パソコンを起動するとこ...
-
エクセルでの文字入力がIMEでし...
-
Windows10 32ビットから64ビッ...
-
OphcrackがWindowsVistaでブー...
おすすめ情報