2017-03-20 9 views
0

正常に実行するためのフラグが必要な他のバッチスクリプトを呼び出す必要があるバッチスクリプトがあります。バッチファイル内のフラグを使用してバッチファイルを呼び出す方法

:adobe_install 
    echo 1. Adobe Reader & echo 2. Adobe Flash Player & echo 3. Adobe Acrobat 
    set /p choice="What would you like to install[1-3]: " 
    if %choice%==1 call "%adobe_path%\adobe.bat" 
    rem if %choice%==2 call "%cd%\scripts/Adobe/adobe.bat /f" 
    rem if %choice%==3 call "%cd%\scripts/Adobe/adobe.bat /a" 

日干しバッチスクリプトが正常に実行するためのフラグを必要とし、次のフラグのいずれかが与えられなければならない:/a,/r/f

はどのようにして、バッチスクリプト内でバッチスクリプトとフラグを実行することができます?私が試した何

if %choice%==1 call "%adobe_path%\adobe.bat" 
# this works but only outputs the help menu of the script 

if %choice%==1 call "%adobe_path%\adobe.bat /r" 
# this will output "the syntax of the command is incorrect" 

cd "%adobe_path%\scripts\Adobe" 
if %choice%==1 call "\.adobe /r" 
# same as above 

if %choice%==1 start "%adobe_path%\adobe /r" 
# launches another cmd and won't run the script 
+3

%adobe_path%\ adobe.bat "/ r'を呼び出すのはなぜですか? 'call'は単一のトークンに限定されません。引用符の目的は、変数にスペースが含まれている場合に、 '%adobe_path%\ adobe.bat'を単一トークンとして評価させることです。しかし、 '/ r'は2番目のトークンになり、' adobe.bat'の最初の引数として渡されます。 – rojo

+0

@rojoうん、私は馬鹿だよ。君たちありがとう – 13aal

答えて

2
if %choice%==1 call "%adobe_path%\adobe.bat" /r 

実行可能ファイル(バッチファイル)名にスペースを許可するように引用されています。パラメータはスペース(またはカンマ)で区切られています

関連する問題