windows - Sådan kalder du en batchfil med et flag fra en batchfil

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har et batch script, der skal ringe til andre batch scripts, der har brug for et flag for at køre med succes.


: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"


Adobatch-scriptet kræver et flag for at kunne klare sig. Et af følgende flag skal gives: /a,, /r, /f


Hvordan kan jeg køre et batch script og et flag inden for et batch script?


Hvad jeg har prøvet:


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\%scriptsAdobe"
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

Bedste reference


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


Den eksekverbare (en batch-fil) er citeret for at tillade mellemrum i navnet. Parametrene adskilles af mellemrum (eller kommaer)