call

Appelle un programme par lots d’un autre sans arrêter le programme de traitement par lots parent. La commande call accepte les étiquettes comme cible de l’appel.

Note

L’appel n’a aucun effet à l’invite de commandes lorsqu’il est utilisé en dehors d’un script ou d’un fichier de commandes.

Syntax

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

Parameters

Parameter Description
[<drive>:][<path>]<filename> Spécifie l’emplacement et le nom du programme batch que vous souhaitez appeler. Le <filename> paramètre est obligatoire et doit avoir une extension .bat ou .cmd.
<batchparameters> Spécifie toutes les informations de ligne de commande requises par le programme batch.
:<label> Spécifie l’étiquette à laquelle vous souhaitez qu’un contrôle de programme de traitement par lots passe.
<arguments> Spécifie les informations de ligne de commande à passer à la nouvelle instance du programme batch, à compter de :<label>.
/? Affiche l'aide à l'invite de commandes.

Batch parameters

Les références d’argument de script batch (%0, %1, ...) sont répertoriées dans les tables suivantes.

L’utilisation de la %* valeur dans un script batch fait référence à tous les arguments (par exemple, %1, %2, %3...).

Vous pouvez utiliser les syntaxes facultatives suivantes comme substitutions pour les paramètres de lot (%n) :

Batch Parameter Description
%~1 Développe %1 et supprime les guillemets environnants.
%~f1 Étend %1 à un parcours pleinement qualifié.
%~d1 Développe %1 à une lettre de lecteur uniquement.
%~p1 Développe %1 à un chemin d’accès uniquement.
%~n1 Développe %1 à un nom de fichier uniquement.
%~x1 Développe %1 à une extension de nom de fichier uniquement.
%~s1 Développe %1 en un chemin d’accès complet qui ne contient que des noms courts.
%~a1 Développe %1 aux attributs de fichier.
%~t1 Développe %1 à la date et à l’heure du fichier.
%~z1 Développe %1 à la taille du fichier.
%~$PATH:1 Recherche les répertoires répertoriés dans la variable d’environnement PATH et développe%1jusqu’au nom complet du premier répertoire trouvé. Si le nom de la variable d’environnement n’est pas défini ou si le fichier est introuvable par la recherche, ce modificateur se développe sur la chaîne vide.

Le tableau suivant montre comment combiner des modificateurs avec les paramètres de lot pour les résultats composés :

Paramètre Batch avec modificateur Description
%~dp1 Développe %1 en une lettre de lecteur et un chemin d’accès uniquement.
%~nx1 Développe %1 à un nom de fichier et à une extension uniquement.
%~dp$PATH:1 Recherche les répertoires répertoriés dans la variable d’environnement PATH pour %1, puis développe la lettre de lecteur et le chemin d’accès du premier répertoire trouvé.
%~ftza1 Développe %1 pour afficher une sortie similaire à la commande dir .

Dans les exemples ci-dessus, %1 et PATH peuvent être remplacés par d’autres valeurs valides. La %~ syntaxe est arrêtée par un numéro d’argument valide. Les %~ modificateurs ne peuvent pas être utilisés avec %*.

Remarks

  • Utilisation des paramètres de lot :

    Les paramètres de lot peuvent contenir toutes les informations que vous pouvez transmettre à un programme de traitement par lots, y compris les options de ligne de commande, les noms de fichiers, les paramètres de lot %0 à %9et les variables (par exemple, %baud%).

  • Utilisation du <label> paramètre :

    En utilisant call avec le paramètre, vous créez un nouveau contexte de <label> fichier de commandes et transmettez le contrôle à l’instruction après l’étiquette spécifiée. La première fois que la fin du fichier de commandes est rencontrée (c’est-à-dire après avoir accédé à l’étiquette), le contrôle revient à l’instruction après l’instruction call . La deuxième fois que la fin du fichier batch est rencontrée, le script batch est arrêté.

  • Utilisation de canaux et de symboles de redirection :

    N’utilisez pas de barres verticales (|) ou de symboles de redirection (< ou >) avec call.

  • Effectuer un appel récursif

    Vous pouvez créer un programme de traitement par lots qui s’appelle lui-même. Toutefois, vous devez fournir une condition de sortie. Sinon, les programmes de traitement par lots parent et enfant peuvent effectuer une boucle sans fin.

  • Utilisation des extensions de commande

    Si les extensions de commande sont activées, l’appel est accepté <label> comme cible de l’appel. La syntaxe correcte est call :<label> <arguments>.

Examples

Pour exécuter le programme checknew.bat à partir d’un autre programme batch, tapez la commande suivante dans le programme de traitement par lots parent :

call checknew

Si le programme de lots parent accepte deux paramètres de lot et que vous souhaitez qu’il passe ces paramètres à checknew.bat, tapez la commande suivante dans le programme de traitement parent :

call checknew %1 %2