call

Chiama un programma batch da un altro senza arrestare il programma batch padre. Il comando call accetta etichette come destinazione della chiamata.

Nota

Il comando Call non influisce sul prompt dei comandi quando viene usato all'esterno di uno script o di un file batch.

Sintassi

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

Parametri

Parametro Descrizione
[<drive>:][<path>]<filename> Specifica il percorso e il nome del programma batch che si desidera chiamare. Il <filename> parametro è obbligatorio e deve avere un'estensione .bat o .cmd.
<batchparameters> Specifica le informazioni della riga di comando richieste dal programma batch.
:<label> Specifica l'etichetta a cui si vuole passare un controllo programma batch.
<arguments> Specifica le informazioni della riga di comando da passare alla nuova istanza del programma batch, a partire da :<label>.
/? Visualizza la guida al prompt dei comandi.

Parametri di Batch

I riferimenti agli argomenti dello script batch (%0, %1, ...) sono elencati nelle tabelle seguenti.

L'utilizzo del %* valore in uno script batch fa riferimento a tutti gli argomenti (ad esempio, %1, %2, %3....

È possibile usare le sintassi facoltative riportate di seguito come sostituzioni per i parametri batch (%n):

Parametro di Batch Descrizione
%~1 Espande %1 e rimuove le virgolette circostanti.
%~f1 Espande %1 a un percorso pienamente qualificato.
%~d1 Espande %1 solo in una lettera di unità.
%~p1 Espande %1 solo in un percorso.
%~n1 Espande %1 solo in un nome di file.
%~x1 Espande %1 solo in un estensione del nome file.
%~s1 Espande %1 in un percorso completo che contiene solo nomi brevi.
%~a1 Espande %1 agli attributi del file.
%~t1 Espande %1 alla data e all'ora del file.
%~z1 Espande %1 alle dimensioni del file.
%~$PATH:1 Esegue la ricerca nelle directory elencate nella variabile di ambiente PATH ed espande %1 fino al nome completo della prima directory trovata. Se il nome della variabile di ambiente non è definito o il file non viene trovato dalla ricerca, questo modificatore si espande nella stringa vuota.

La tabella seguente illustra come combinare i modificatori con i parametri batch per i risultati composti:

Parametro batch con modificatore Descrizione
%~dp1 Espande %1 solo in una lettera di unità e in un percorso.
%~nx1 Espande %1 solo in un estensione e nome del file.
%~dp$PATH:1 Cerca %1 nelle directory elencate nella variabile di ambiente PATH e quindi si espande nella lettera di unità e nel percorso della prima directory trovata.
%~ftza1 Espande %1 per visualizzare l'output simile al comando dir.

Negli esempi precedenti, %1 e PATH possono essere sostituiti da altri valori validi. La %~ sintassi viene terminata da un numero di argomento valido. I %~ modificatori non possono essere usati con %*.

Osservazioni:

  • Uso dei parametri batch:

    I parametri batch possono contenere tutte le informazioni che è possibile passare a un programma batch, incluse opzioni della riga di comando, nomi di file, parametri batch da %0 a %9 e variabili (ad esempio, %baud%).

  • Uso del parametro <label>:

    Usando call con il parametro <label>, si crea un nuovo contesto di file batch e si passa il controllo all'istruzione dopo l'etichetta specificata. La prima volta che viene rilevata la fine del file batch, ovvero dopo il passaggio all'etichetta, il controllo torna all'istruzione dopo l'istruzione call . La seconda volta che viene rilevata la fine del file batch, lo script batch viene chiuso.

  • Uso di pipe e simboli di reindirizzamento:

    Non usare pipe (|) o simboli di reindirizzamento (< o >) con chiamata.

  • Esecuzione di una chiamata ricorsiva

    È possibile creare un programma batch che chiama se stesso. Tuttavia, è necessario fornire una condizione di uscita. In caso contrario, i programmi batch padre e figlio possono eseguire cicli senza fine.

  • Utilizzo di estensioni di comando

    Se le estensioni dei comandi sono abilitate, call esegue l'accettazione <label> come destinazione della chiamata. La sintassi corretta è call :<label> <arguments>

Esempi

Per eseguire il programma checknew.bat da un altro programma batch, digitare il comando seguente nel programma batch padre:

call checknew

Se il programma batch padre accetta due parametri batch e si desidera il passaggio di tali parametri a checknew.bat, digitare il comando seguente nel programma batch padre:

call checknew %1 %2