Dans un fichier batch, dois-je faire (par exemple) ce qui suit?
@echo off
call other.bat %1 %2 %3 %4 %5 %6 %7 %8 %9
windows
scripting
batch-file
Roger Lipscombe
la source
la source
Réponses:
Les fichiers batch Windows (depuis Windows XP, mais peut-être plus tôt) prennent en charge la
%*
construction, qui évalue tous les paramètres à partir de% 1.Malheureusement, cela n'honore pas la
SHIFT
commande, donc ce qui suit ne fonctionnera pas:Il transmettra toujours le premier paramètre au deuxième fichier de commandes.
la source
%*
préserve les espaces / guillemets.Vous pouvez rassembler tous les arguments en utilisant quelque chose comme:
Cela fonctionne quel que soit le nombre d'arguments.
la source
Si vous voulez sauter les 3 premiers paramètres, par exemple, et passer le reste:
Il peut y avoir des problèmes avec les guillemets dans les paramètres.
bravo à Patrick Cuff, /programming/382587/how-to-get-batch-file-parameters-from-nth-position-on
la source
Oui, ils le font.
Vous pouvez écrire votre exemple comme suit:
Aussi: le décalage est pris en charge sur les fenêtres ... Voir ceci .
Mais en effet, ce dernier lien confirme que shift ne fonctionne pas en combinaison avec% *:
la source
la source
call other.bat
avec des paramètres donnés :( Où dois-je écrire "other.bat"? Est-il possible de supprimer "Index (s) de paramètre à extraire" "requête? En outre,cls
n'est pas nécessaire dans la solution finale.