Comment passer des paramètres à un batch

Résolu/Fermé
randall Messages postés 422 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 26 février 2024 - 11 févr. 2008 à 17:06
 Juju - 2 août 2011 à 10:40
Bonjour,

N'ayant que des connaissances sommaires en commandes batch je voudrais savoir comment on passe des paramètres à un batch.
J'ai un fichier nommé sauvegarde. bat dans lequel je veux créer 2 repertoires un nommé sauvegarde 1 l'autre sauvegarde2
Au départ j'ai la commande MD%1 pour créer le premier repertoire,quel texte faut'il écrire pour lui passer le premier paramètre soit sauvegarde1 et ensuite pour passer le second soit sauvegarde2.

Après c'est de la commade avec xcopy qui ne me pose pas de problème.
Merci
A voir également:

8 réponses

cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
14 févr. 2008 à 14:28
Bonjour,

petit rectificatif:
echo md c:\%1
affichera
md c:\nom_1er_param_passation
et non pas comme je l'ai indiqué :
md c:\%1
5
t
0
Merci, premier forum, première réponse, et ça fonctionne super bien !
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
13 févr. 2008 à 01:31
Bonjour,


Si j'ai bien compris le problème il te suffit d'écrire :

nom_de_ton_.bat sauvegarde1 sauvegarde2

Après validation de cette commande activant l'exécution de batch nom_de_ton_.bat se trouvent :
La chaîne de caractères sauvegarde1 dans %1.
La chaîne de caractères sauvegarde2 dans %2.
3
frsuujdd
0
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
14 févr. 2008 à 17:53
Tu ne m'ennuies pas.

Ce que tu sembles n'avoir pas très bien compris n'est, apparemment pas l'utilité des paramètres de passation, mais plutôt le moyen de les utiliser, où dans le cas présent le "moment" où il faut les coder dans la chronologie des actions à mener pour activer l'exécution d'un batch.

1) Ecriture d'un batch qui doit récupérer deux paramètres de passation lesquels vraisemblablement orienteront sa logique d'exécution.
Même si cette logique d'exécution se ramène, comme c'est le cas dans ton exemple, à formater une instruction, en l'occurrence :
echo md c:\%1
Ce batch (comme tous les batch) s'attend à recevoir jusquà 9 valeurs &1 à &9 (&0 contient le nom du batch actif). A charge pour sa logique d'exécution de réceptionner, c'est-à-dire d'utiliser (d'exploiter), tout ou partie de ces 9 paramètres.
Ces 10 paramètres sont positionnels &0 = nom du batch. Si &1 présent &1 = 1er paramètre, Si &1 ET &2 présents &2 = 2em paramètre, Si &1 ET &2 ET &3 présents &3 = 3em paramètre, ect......
2) Activation du batch. Pour ce faire il suffit de taper dans la ligne de commande son nom. Les différentes commandes et instructions présentes s'exécuteront une à une dans l'ordre "chronologique (goto, cal,l considérés) où elles sont écrites. Dans ce premier cas seul le nom a été tapé au clavier, il s'ensuit que les paramètres &1 à &9 sont vides (NULL) le paramètre &0 est uniquement renseigné avec le nom du batch.
Pour communiquer une ou plusieurs valeurs au batch il suffit de faire suivre son nom,toujours tapé sur la ligne de l'invite de commande (où dans le cas de communication inter-fichiers de commandes comme paramètres d'un call ou d'un start) de un, deux, ...jusqu'à 9 valeurs séparées par au moins un espace. Dans notre cas deux valeurs suivront le nom, exemple :
nom_de_ton_.bat sauvegarde1 sauvegarde2
&1 et &2 sont donc renseignés respectivement avec sauvegarde1 et sauvegarde2, &3 jusquà &9 sont vides de toute valeur (remarque annexe : l'absence d'information/donnée est déjà une information/indication).

Tu n'as par conséquent pas besoin de l'instruction (qui en l'état n'en est pas une), disons d'une instruction particulière, qui te permettrait de renseigner dans ton batch les paramètres &1 à &9 (ici &1 et &2), ils le sont (ou peuvent l'être, car optionnels et positionnels) à l'activation du batch.
3
bonjour,

C'est bien ça mais le batch ne fonctionne pas les paramètres ne sont pas pris en compte .Donc le repertoire md sauvegarde n'est pas crée.

@echo off

echo c:\appel\essai.bat sauvegarde1 sauvegarde2
echo le premier param est %1
echo le second param est %2
echo md c:\%1

Merci
1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
randall Messages postés 422 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 26 février 2024 9
14 févr. 2008 à 15:24
rebonjour,

Je pense que quelquechose m'échappe dans la compréhension du problème.

Si j'ai le batch suivant:
@echo off
c:\appel\essai.bat reper1 reper2 reper3
echo le premier parametre est %1
echo le second parametre %2
echo le troisieme parametre est %3

echo md c:\%1

Au lancement les paramètres reper1 etc.. ne sont pas transmis à %1 %2 etc..
et à fortiori le repertoire que je veux créer avec md n'est pas crée le batch m'affiche md c:\

Si tu peux le tester sur ton micro et me dire ce que cela te donne
Merci et désolé de t'ennuyer encore
1
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
15 févr. 2008 à 12:15
Bonjour,

C'est ça !

Bon courage,
1
cchristian Messages postés 921 Date d'inscription lundi 21 janvier 2008 Statut Membre Dernière intervention 6 mars 2012 131
14 févr. 2008 à 12:12
Bonjour,

Je ne comprrends pas ce que tu veux faire avec la commande :
echo c:\appel\essai.bat sauvegarde1 sauvegarde2
En l'occurrence elle ne fait qu'afficherà la console la chaîne de caractères :
c:\appel\essai.bat sauvegarde1 sauvegarde2
idem pour : echo md c:\%1 qui affichera à la console : md c:\%1

Si ton fichier, tel que tu le définis, est appelé (exécuté) avec deux paramètres de passation, ils seront affichés normalement par les commandes :
echo le premier param est %1
echo le second param est %2

la commande echo n'active pas le texte qu'elle contient, elle l'affiche uniquement.
0
randall Messages postés 422 Date d'inscription jeudi 5 août 2004 Statut Membre Dernière intervention 26 février 2024 9
15 févr. 2008 à 10:28
Bonjour,
OK cette fois j'ai compris ce que je ne faisais pas c'est d'écrire dans la ligne de commande du batch, j'écrivais les paramètres dans le texte du batch d'où l'erreur permanente à laquelle j'étais confrontée.

Enfin merci pour le dérangement
0