0
この「コード」を持つcmds.batファイルがあります。バッチコマンドは停止しません
@echo off
:Ask
echo What command should I excute?
echo 1) ncu -g
echo 2) gem outdated
echo 3) gem update
echo 4) pip list --outdated
echo 5) pip upgrade all packages!
set INPUT=
set /P INPUT=Type input: %=%
If "%INPUT%"=="1" goto cmd1
If "%INPUT%"=="2" goto cmd2
If "%INPUT%"=="3" goto cmd3
If "%INPUT%"=="4" goto cmd4
If "%INPUT%"=="5" goto cmd5
:cmd1
ncu -g
:end
:cmd2
gem outdated
:end
:cmd3
gem update
:end
:cmd4
pip list --outdated
:end
:cmd5
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
:end
:quit
私は4を押すたびに、それは第四とだけではなく、第四の五のコマンドを実行します。それは私の最も頻度の高いコマンドラインコマンドを実行するために私を求めて単純なツールです。私は間違って何をしていますか?
と置き換えてください。 'end'は何もしません。 goto:quit'または 'goto:eof' –
また、 'if'クエリの後に' goto:quit'を置くことで、ユーザが '1'から' 5'以外の何かを入力するケースも考慮する必要があります。 – aschipfl
各オプションは1つのコマンドしか実行しないので、 ncu.exe -g&goto:EOF'と '%INPUT%" == "2" gem.exeが古くなって&goto:EOF'などのように '%INPUT%" == "1" 。これにより、バッチコードがよりコンパクトになります。 '&'オペランドの詳細については、[Windowsバッチファイルを使用した複数のコマンドでの単一行](http://stackoverflow.com/a/25344009/3074564)の回答を参照してください。 – Mofi