2017-05-05 19 views
0

に何も書き込まずに最後にもう一度ループします。これはバグファイルの問題(ユーザー入力に応じてインストールを実行するためにファイルをインストールスクリプトにマージする)の前に使用しますこの:私は、スクリプトを実行するときバッチファイルは、変数

@echo off 
copy %CD%\Vagrantfile_base %CD%\Vagrantfile 
echo Vagrant Provisionierung 
echo 1 - nodejs 
echo 2 - Nginx 
echo 3 - Qt 
echo 4 - Git 
echo 5 - gcc 
echo a - Alle vorgenannte Software 
set /p choice=Mittels Zahlen durch Komma getrennt angeben, was installiert werden soll (Bspw. 1,2,3): 
for %%i in (%choice%) do (
    if "%%i"=="1" call :nodejs_install 
    if "%%i"=="2" call :nginx_install 
    if "%%i"=="3" call :qt_install 
    if "%%i"=="4" call :git_install 
    if "%%i"=="5" call :gcc_install 
    if "%%i"=="a" call :all_install 
) 
:nodejs_install 
copy /b %CD%\software.sh+%CD%\software\nodejs_install.sh software.sh 
PAUSE 
goto :EOF 
:nginx_install 
copy /b %CD%\software.sh+%CD%\software\nginx_install.sh software.sh 
PAUSE 
goto :EOF 
:qt_install 
copy /b %CD%\software.sh+%CD%\software\qt_install.sh software.sh 
PAUSE 
goto :EOF 
:git_install 
copy /b %CD%\software.sh+%CD%\software\git_install.sh software.sh 
PAUSE 
goto :EOF 
:gcc_install 
copy /b %CD%\software.sh+%CD%\software\gcc_install.sh software.sh 
PAUSE 
goto :EOF 
:all_install 
call :nodejs_install 
call :nginx_install 
call :qt_install 
call :git_install 
call :gcc_install 
PAUSE 
goto :EOF 
PAUSE 

だから、それは常に私はそれを選択したdidntの場合でも、最後にnodejs_installを呼び出して、私はなぜ知りません。

iにエコーを追加すると、空になっています。

非常に長く検索しても何も見つかりませんでした。

誰かがこれに対する回答や修正をしていると思われますか?

答えて

3

バッチには真のサブルーチンがありません。サブルーチンのエントリポイントを保護するためにGOTOを使用しないと、ルーティンに入ることになります。 )の後、:nodejs_installの前にGOTO :EOFが必要です。

関連する問題