Kommandot: "CALL" är på Windows 12, 11, 10, .. , MS Server 2025, 2022, 2019, .. tillgänglig
Exemplen för kommandot "CALL"
De
`CALL`kommando i Windows Kommandotolk används för att starta körning av ett annat batchskript i ett batchskript. Här är några exempel med kommentarer:
Exempel 1: Enkelt anrop till ett annat batchskript:
CALL Övrig_manus.bat
Beskrivning: Detta kommando anropar batchskriptet
`Övrig_manus.bat`på. De
`CALL`kommandot används för att säkerställa att kontrollen återgår till det ursprungliga skriptet efter att det anropade skriptet har slutförts.
Exempel 2: Skicka parametrar till det anropade skriptet:
CALL Övrig_manus.bat Parameter1 Parameter2
Beskrivning: Parametrarna finns här
`Parameter1`och
`Parameter2`skickas till det anropade batchskriptet. Inom
`Övrig_manus.bat`kan använda dessa parametrar
`%1`,
`%2`, etc. kan hämtas.
Exempel 3: Användning av`%*`för alla parametrar som skickats:
CALL Övrig_manus.bat %*
Beskrivning:*`%`representerar alla passerade parametrar. Detta kommando anropar
`Övrig_manus.bat`och skickar alla parametrar som skickades till det ursprungliga skriptet.
Exempel 4: Kontrollera returvärdet för det anropade skriptet:
CALL Övrig_manus.bat
IF ERRORLEVEL 1 (
ECHO Det anropade skriptet returnerade ett fel.
) ELSE (
ECHO Det anropade skriptet kördes framgångsrikt.
)
Beskrivning: Batchskriptet som kallas är här
`Övrig_manus.bat`avrättade. Sedan med
`ERRORLEVEL`kontrollerar om skriptet returnerade ett fel.
Exempel 5: Användning av`GOTO`efter samtalet:
CALL Övrig_manus.bat
GOTO Fortsätta
:Fortsätta
ECHO Manuset anropades framgångsrikt.
Beskrivning: Här är batchskriptet
`Övrig_manus.bat`anropas, och efter anropet blir exekveringen hoppetiketten
`Fortsätta`vidarebefordras.
De
`CALL`kommandot är särskilt användbart när du vill anropa ett annat skript från ett batchskript och se till att körningen återgår till det ursprungliga skriptet. Detta är viktigt för att fortsätta det ursprungliga skriptet efter att ha anropat det andra skriptet.
"CALL" Utdrag från Microsoft Windows Hjälp
Microsoft Windows [Version 10.0.19045.3693]
(c) Copyright 1985-2023 Microsoft Corp.
C:\\Windows>
Anropar en kommandofil inifrån en kommandofil.
CALL [enhet:][sökväg]filnamn [kommandofilsparametrar]
kommandofilsparametrar Anger den kommandoradsinformation som
överförs
till kommandofilen som anropas.
Om kommandotilläggen är aktiverade ändras kommandot CALL enligt
följande:
Kommandot CALL accepterar nu etiketter som mål för CALL. Syntaxen
är:
CALL :etikett argument
En ny kommandofilskontext skapas med de angivna argumenten och
körningen fortsätter med uttrycket efter den angivna etiketten.
Du måste
"avsluta" två gånger genom att nå slutet på kommandofilen två
gånger.
Första gången du når slutet, kommer körningen att fortsätta
precis efter
CALL-uttrycket. Den andra gången kommer kommandofilen att
avslutas.
Skriv GOTO /? om du vill se en beskrivning av tillägget GOTO :EOF
som
tillåter dig att återgå från en kommandofil.
Dessutom har expanderingen av argumentreferenser i kommandofiler
(%0, %1
etc.) ändrats enligt följande:
%* i en kommandofil refererar till alla argumenten (t.ex. %1
%2 %3
%4 %5...)
Ersättning av kommandofilsparametrar (%n) har förbättrats.
Det går nu
att använda följande syntax:
%~1 - expanderar %1 och tar bort omslutande
citattecken (")
%~f1 - expanderar %1 till en fullständig sökväg
%~d1 - expanderar %1 till endast en
enhetsbeteckning
%~p1 - expanderar %1 till endast en sökväg
%~n1 - expanderar %1 till endast ett filnamn
%~x1 - expanderar %1 till endast ett
filnamnstillägg
%~s1 - den expanderade sökvägen innehåller endast
kortnamn
%~a1 - expanderar %1 till filattribut
%~t1 - expanderar %1 till filens datum/tid
%~z1 - expanderar %1 till filstorleken
%~$PATH:1 - söker igenom katalogerna angivna i
miljövariabeln PATH och expanderar %1 till
det fullständiga namnet för den först
funna
förekomsten. Om miljövariabeln inte är
definierad
eller om filen inte kan hittas vid
sökningen, kommer
den här modifieraren att expanderas till
den tomma
strängen
Modifierarna kan kombineras för att skapa sammansatta
resultat:
%~dp1 - expanderar %1 till endast enhetsbeteckning
och sökväg
%~nx1 - expanderar %1 till endast filnamn och
filnamnstillägg
%~dp$PATH:1 - söker efter %1 i katalogerna angivna i
miljövariabeln
PATH och expanderar enhetsbeteckningen och
sökvägen
för den första funna förekomsten.
%~ftza1 - expanderar %1 till en DIR-liknande
utdatarad
I ovanstående exempel kan %1 och PATH ersättas med andra
giltiga
värden. Syntaxen för %~ bestäms av ett giltigt
argumentnummer.
Modifierarna för %~ kan eventuellt inte användas med %*
Viktig information, tips för kommandot "CALL"
Ja, det finns några viktiga punkter och överväganden som du bör tänka på när du gör
`CALL`kommandot i Windows kommandotolk:
1.
Använd med batchskript: The
`CALL`kommandot används vanligtvis för att anropa ett annat batchskript inom ett batchskript. Observera att det kanske inte är nödvändigt när du kör andra filtyper.
2.
Kontrollera returvärde: Om batchskriptet som kallas returnerar ett returvärde kan du göra det med
`ERRORLEVEL`kolla upp. Anteckna det
`ERRORLEVEL`återspeglar endast returvärdet för det senast körda kommandot.
CALL Övrig_manus.bat
IF ERRORLEVEL 1 (
ECHO Det anropade skriptet returnerade ett fel.
) ELSE (
ECHO Det anropade skriptet kördes framgångsrikt.
)
3.
Korrekt användning av parametrar: Var uppmärksam på korrekt användning av parametrar när du skickar parametrar till det anropade batchskriptet. Parametrarna kan användas i det anropade skriptet
`%1`,
`%2`, etc. kan hämtas.
CALL Övrig_manus.bat Parameter1 Parameter2
4.
Syntax och mellanslag: Se till att syntaxen är korrekt och att det inte finns några onödiga mellanslag. Detta kan leda till fel.
5.
Säkerhetsaspekter: Vid användning
`CALL`I skript som innehåller parametrar är det viktigt att se till att parametrarna som skickas är korrekt validerade och bearbetade för att minimera säkerhetsrisker.
6.
Övervakning och loggning: När man utvecklar batchskript som anropar andra skript, är det ofta tillrådligt att använda övervaknings- och loggningsmetoder för att övervaka exekvering och eventuella fel.
7.
Undvik oändliga loopar: Var noga med att inte skapa oändliga loopar av misstag genom att anropa batchskript i en loop. Detta kan resultera i att manus kallar sig själva om och om igen.
8.
Versionsspecifika skillnader: Observera att funktionaliteten hos
`CALL`kommandot kan variera beroende på version av Windows. Det är tillrådligt att läsa dokumentationen för din specifika version av Windows.
Ta hänsyn till dessa överväganden för att säkerställa användningen av
`CALL`korrekt och säkert i dina batchskript.