Comme d'autres l'ont déjà dit, les paramètres transmis par le biais de la ligne de commande peut être consulté dans des fichiers batch avec la notation %1
de %9
. Il y a aussi deux autres jetons que vous pouvez utiliser:
-
%0
est le fichier exécutable (fichier batch) nom, comme spécifié dans la ligne de commande.
-
%*
est tous les paramètres spécifiés dans la ligne de commande -- ceci est très utile si vous voulez transférer les paramètres vers un autre programme.
Il y a aussi beaucoup de techniques à connaître en plus de simplement de savoir comment accéder aux paramètres.
Vérifier si un paramètre a été adoptée
Cela se fait avec des constructions comme IF "%~1"==""
, ce qui est vrai si et seulement si aucun des arguments ont été transmis à tous. Remarque le caractère tilde qui provoque les guillemets pour être retiré de la valeur de %1
; sans tilde, vous obtiendrez des résultats inattendus si cette valeur comprend les guillemets doubles, y compris la possibilité d'erreurs de syntaxe.
La manipulation de plus de 9 arguments (ou tout simplement rendre la vie plus facile)
Si vous avez besoin d'accéder à plus de 9 arguments, vous devez utiliser la commande SHIFT
. Cette commande déplace les valeurs de tous les arguments d'un seul endroit, de sorte qu' %0
prend la valeur de %1
, %1
prend la valeur de %2
, etc. %9
prend la valeur de la dixième argument (si il est présent), ce qui n'était pas disponible par le biais de la variable avant d'appeler SHIFT
(entrez la commande SHIFT /?
pour plus d'options).
SHIFT
est également utile lorsque vous voulez facilement les paramètres de processus sans exiger qu'ils sont présentés dans un ordre spécifique. Par exemple, un script peut reconnaître les drapeaux -a
et -b
dans n'importe quel ordre. Une bonne façon d'analyser la ligne de commande dans de tels cas est
:parse
IF "%~1"=="" GOTO endparse
IF "%~1"=="-a" REM do something
IF "%~1"=="-b" REM do something else
SHIFT
GOTO parse
:endparse
REM ready for action!
Ce schéma permet d'analyser assez complexe de lignes de commande sans passer pour un fou.
La Substitution de paramètres de commandes
Pour les paramètres qui représentent les noms de fichiers le shell fournit de nombreuses fonctions permettant de travailler avec des fichiers n'est pas accessible de toute autre manière. Cette fonctionnalité est accessible avec des constructions qui commencent par %~
.
Par exemple, pour obtenir la taille du fichier passé en argument utilisation
ECHO %~z1
Pour obtenir le chemin d'accès du répertoire dans lequel le fichier de commandes a été lancé à partir de (très utile!) vous pouvez utiliser
ECHO %~dp0
Vous pouvez consulter la gamme complète de ces capacités en tapant CALL /?
dans l'invite de commande.