appel
Appelle un fichier de commandes à partir d’un autre sans arrêter le fichier de commandes parent. La commande call accepte les étiquettes comme cible de l’appel.
Notes
La commande call n’a aucun effet sur l’invite de commandes quand elle est utilisée en dehors d’un fichier de script ou d’un fichier de commandes.
Syntaxe
call [drive:][path]<filename> [<batchparameters>]]
call [:<label> [<arguments>]]
Paramètres
Paramètre | Description |
---|---|
[<drive>:][<path>]<filename> |
Spécifie l’emplacement et le nom du fichier de commandes que vous voulez appeler. Le paramètre <filename> est obligatoire et doit avoir une extension .bat ou .cmd. |
<batchparameters> |
Spécifie toutes les informations de ligne de commande dont a besoin le fichier de commandes. |
:<label> |
Spécifie l’étiquette à laquelle le contrôle d’un fichier de commandes doit accéder. |
<arguments> |
Spécifie les informations de ligne de commande à passer à la nouvelle instance du fichier de commandes, à partir de :<label> . |
/? | Affiche l'aide à l'invite de commandes. |
Paramètres de commandes
Les références d’argument de script de commandes par lot (%0, %1,...) sont listées dans les tableaux suivants.
L’utilisation de la valeur %* dans un script de commandes par lot référence tous les arguments (par exemple, %1, %2, %3...).
Vous pouvez utiliser les syntaxes facultatives suivantes en substitution des paramètres de commandes par lot (%n) :
Paramètre de commandes | Description |
---|---|
%~1 | Développe %1 et supprime les guillemets. |
%~f1 | Développe %1 avec le chemin complet. |
%~d1 | Développe %1 avec la lettre de lecteur uniquement. |
%~p1 | Développe %1 avec le chemin uniquement. |
%~n1 | Développe %1 avec le nom de fichier uniquement. |
%~x1 | Développe %1 avec l’extension de nom de fichier uniquement. |
%~s1 | Développe %1 avec le chemin complet qui contient uniquement des noms courts. |
%~a1 | Développe %1 avec les attributs de fichier. |
%~t1 | Développe %1 avec la date et l’heure du fichier. |
%~z1 | Développe %1 avec la taille du fichier. |
%~$PATH:1 | Recherche les répertoires listés dans la variable d’environnement PATH et développe %1 avec le nom complet du premier répertoire trouvé. Si le nom de la variable d’environnement n’est pas défini ou que le fichier est introuvable, ce modificateur est développé avec une chaîne vide. |
Le tableau suivant montre comment combiner les modificateurs avec les paramètres de commandes par lot pour avoir des résultats composés :
Paramètre de commandes avec modificateur | Description |
---|---|
%~dp1 | Développe %1 avec la lettre de lecteur et le chemin uniquement. |
%~nx1 | Développe %1 avec l’extension et le nom de fichier uniquement. |
%~dp$PATH:1 | Recherche %1 dans les répertoires listés dans la variable d’environnement PATH, puis développe avec la lettre de lecteur et le chemin du premier répertoire trouvé. |
%~ftza1 | Développe %1 pour afficher une sortie similaire à celle de la commande dir. |
Dans les exemples ci-dessus, %1 et PATH peuvent être remplacés par d’autres valeurs valides. La syntaxe %~ est terminée par un numéro d’argument valide. Les modificateurs %~ ne peuvent pas être utilisés avec %*.
Notes
Utilisation des paramètres de commandes :
Les paramètres de commandes peuvent contenir toutes les informations que vous pouvez passer à un fichier de commandes, notamment des options de ligne de commande, des noms de fichiers, des paramètres de commandes %0 à %9 et des variables (par exemple, %baud%).
Utilisation du paramètre
<label>
:En utilisant call avec le paramètre
<label>
, vous créez un contexte de fichier de commandes et passez le contrôle à l’instruction située 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 retourne à l’instruction située après l’instruction call. La deuxième fois que la fin du fichier de commandes est rencontrée, le script de commandes par lot est arrêté.Utilisation de barres verticales et de symboles de redirection :
N’utilisez pas de barres verticales
(|)
ni de symboles de redirection (<
ou>
) avec call.Effectuer un appel récursif
Vous pouvez créer un fichier de commandes qui s’appelle lui-même. Toutefois, vous devez fournir une condition de sortie. Sinon, les fichiers de commandes parents et enfants peuvent tourner en boucle indéfiniment.
Utilisation des extensions de commande
Si les extensions de commande sont activées, call accepte
<label>
comme cible de l’appel. La syntaxe correcte estcall :<label> <arguments>
.
Exemples
Pour exécuter le programme checknew.bat à partir d’un autre fichier de commandes, tapez la commande suivante dans le fichier de commandes parent :
call checknew
Si le fichier de commandes parent accepte deux paramètres de commandes et que vous voulez qu’il les passe à checknew.bat, tapez la commande suivante dans le fichier de commandes parent :
call checknew %1 %2