こんな感じ。テキストエディタに貼り付けて保存し、拡張子を bat か cmd に変えて実行すれば動きます。
@echo off
echo select a command
echo a --- description about command a
echo b --- description about command b
echo:
set CMD=
set /p CMD=">"
if "%CMD%" equ "a" (
goto CmdA
) else if "%CMD%" equ "b" (
goto CmdB
) else (
goto CmdDefault
)
:CmdA
echo command a
pause > nul
goto End
:CmdB
echo command b
pause > nul
goto End
:CmdDefault
echo no-command
pause > nul
goto End
:End
echo select a command
echo a --- description about command a
echo b --- description about command b
echo:
set CMD=
set /p CMD=">"
if "%CMD%" equ "a" (
goto CmdA
) else if "%CMD%" equ "b" (
goto CmdB
) else (
goto CmdDefault
)
:CmdA
echo command a
pause > nul
goto End
:CmdB
echo command b
pause > nul
goto End
:CmdDefault
echo no-command
pause > nul
goto End
:End
肝となっているのは、文字列入力の部分。この入力値に応じて if 文で分岐しているだけ。
set /p CMD=">"
下みたいにして動かしてみれば、文字列入力が行えてることがよくわかるかと。
@echo off
set CMD=
set /p CMD=">"
echo input: %CMD%
pause > nul
set CMD=
set /p CMD=">"
echo input: %CMD%
pause > nul
また、デフォルトコマンドを指定したい場合には、あらかじめコマンドを SET すれば問題なし。
下記のようにすると、コマンド "a" がデフォルトになる。(コマンド入力が何もなく、Enter が押された場合に発生。)
...
set CMD=a
...
set CMD=a
...
もっとコマンドを増やしたければ、else if の部分を、コマンド "b" を参考に増やしてあげれば問題なし。
0 件のコメント :
コメントを投稿