2017-03-20 220 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'是第二個標記,並且會作爲第一個參數傳遞給'adobe.bat'。 – rojo

+0

@rojo是的,我是一個白癡大聲笑。感謝你們 – 13aal

回答

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

可執行文件(批處理文件)引述允許在名稱中的空格。參數用空格(或逗號)分隔