Dela via


kalla

Anropar ett batchprogram från ett annat utan att stoppa det överordnade batchprogrammet. Anropskommandot accepterar etiketter som mål för anropet.

Anmärkning

Anropet har ingen effekt i kommandotolken när det används utanför ett skript eller en batchfil.

Syntax

call [drive:][path]<filename> [<batchparameters>]] 
call [:<label> [<arguments>]]

Parameterar

Parameter Beskrivning
[<drive>:][<path>]<filename> Anger platsen och namnet på det batchprogram som du vill anropa. Parametern <filename> krävs och måste ha ett .bat- eller .cmd-tillägg.
<batchparameters> Anger all kommandoradsinformation som krävs av batchprogrammet.
:<label> Anger den etikett som du vill att en batchprogramkontroll ska hoppa till.
<arguments> Anger den kommandoradsinformation som ska skickas till den nya instansen av batchprogrammet med början vid :<label>.
/? Visar hjälp i kommandotolken.

Batchparametrar

Argumentreferenserna för batchskript (%0, %1, ...) visas i följande tabeller.

Om du använder värdet %* i ett batchskript refererar du till alla argument (till exempel %1, %2, %3...).

Du kan använda följande valfria syntaxer som ersättningar för batchparametrar (%n):

Batch-parameter Beskrivning
%~1 Expanderar %1 och tar bort omgivande citattecken.
%~f1 Expanderar %1 till en fullständigt kvalificerad sökväg.
%~d1 Expanderar endast%1 till en enhetsbeteckning.
%~p1 Expanderar endast%1 till en sökväg.
%~n1 Expanderar endast%1 till ett filnamn.
%~x1 Expanderar endast%1 till ett filnamnstillägg.
%~s1 Expanderar %1 till en fullständigt kvalificerad sökväg som endast innehåller korta namn.
%~a1 Expanderar %1 till filattributen.
%~t1 Expanderar %1 till datum och tid för filen.
%~z1 Expanderar %1 till filens storlek.
%~$PATH:1 Söker igenom katalogerna i path-miljövariabeln och expanderar %1 till det fullständigt kvalificerade namnet på den första katalogen som hittades. Om miljövariabelnamnet inte har definierats eller om filen inte hittas av sökningen expanderas den här modifieraren till den tomma strängen.

I följande tabell visas hur du kan kombinera modifierare med batchparametrarna för sammansatta resultat:

Batch-parameter med modifierare Beskrivning
%~dp1 Expanderar %1 endast till en enhetsbeteckning och sökväg.
%~nx1 Expanderar endast%1 till ett filnamn och filnamnstillägg.
%~dp$SÖKVÄG:1 Söker i katalogerna i PATH-miljövariabeln efter %1och expanderar sedan till enhetsbeteckningen och sökvägen för den första katalogen som hittades.
%~ftza1 Expanderar %1 för att visa utdata som liknar dir-kommandot .

I exemplen ovan kan %1 och PATH ersättas med andra giltiga värden. Syntaxen %~ avslutas med ett giltigt argumentnummer. Det %~ går inte att använda modifierarna med %*.

Anmärkningar

  • Använda batchparametrar:

    Batchparametrar kan innehålla all information som du kan skicka till ett batchprogram, inklusive kommandoradsalternativ, filnamn, batchparametrar %0 via %9och variabler (till exempel %baud%).

  • Med hjälp av parametern <label> :

    Genom att använda anropet med parametern <label> skapar du en ny batchfilkontext och skickar kontrollen till -instruktionen efter den angivna etiketten. Första gången batchfilens slut påträffas (det vill säga när du har hoppat till etiketten) återgår kontrollen till -instruktionen efter anropsinstrukturen. Andra gången batchfilens slut påträffas avslutas batchskriptet.

  • Använda pipes och omdirigeringssymboler:

    Använd inte rör (|) eller omdirigeringssymboler (< eller >) med anrop.

  • Göra ett rekursivt anrop

    Du kan skapa ett batchprogram som anropar sig själv. Du måste dock ange ett avslutningsvillkor. Annars kan de överordnade och underordnade batchprogrammen loopa oändligt.

  • Arbeta med kommandotillägg

    Om kommandotillägg är aktiverade kan du anropa accepterar <label> som mål för anropet. Rätt syntax är call :<label> <arguments>.

Exempel

Om du vill köra checknew.bat program från ett annat batchprogram skriver du följande kommando i det överordnade batchprogrammet:

call checknew

Om det överordnade batchprogrammet accepterar två batchparametrar och du vill att de parametrarna ska skickas till checknew.batskriver du följande kommando i det överordnade batchprogrammet:

call checknew %1 %2