:begin
ECHO *1* - A
ECHO *2* - B
ECHO *3* - C
ECHO *4* - D
ECHO *5* - runAll
ECHO *6* - Quit
set /p CH=choose
for /f "tokens=* delims= " %%A in ("%CH%") DO (
if *%%A* EQU *1* call A
....
if *%%A* EQU *4* call D
if *%%A* EQU *5* call :callAll
if *%%A* EQU *6* exit
)
goto :begin
:callAll
call A
...
call D
goto :eof
編集:
:begin
ECHO *1* - A
ECHO *2* - B
ECHO *3* - C
ECHO *4* - D
ECHO *5* - runAll
ECHO *6* - Quit
set /p CH=choose
echo nul >temp.bat
set line=title "temp script"
for /f "tokens=* delims=;, " %%A in ("%CH%") DO (
if *%%A* EQU *1* set line=%line% &call A
....
if *%%A* EQU *4* set line=%line% &call D
if *%%A* EQU *5* call :callAll
if *%%A* EQU *6* exit
)
echo %line% >>temp.bat
call temp.bat
del /s /q /f temp.bat
goto :begin
:callAll
line=%line% &call A
...
line=%line% &call D
goto :eof
これにより、オプションを入力した後に実行される一時スクリプトが作成されます(実行後に削除されます)。自己編集スクリプトも作成できますが、コードのメンテナンスはより困難になります。for ループは、「顧客」が入力したデータを処理し、スペースで区切られたすべての数値を実行します。「delims=」では、コンマ、セミコロン、および必要なものを追加できます。