Comment passer des paramètres à un batch
Résolu/Fermé
randall
Messages postés
426
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
23 octobre 2024
-
11 févr. 2008 à 17:06
Juju - 2 août 2011 à 10:40
Juju - 2 août 2011 à 10:40
A voir également:
- Comment passer des paramètres à un batch
- Passer de windows 7 à windows 10 - Accueil - Mise à jour
- Passer de qwerty a azerty - Guide
- Fichier batch - Guide
- Ouvrir paramètres - Guide
- Passer de majuscule à minuscule - Guide
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
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
petit rectificatif:
echo md c:\%1
affichera
md c:\nom_1er_param_passation
et non pas comme je l'ai indiqué :
md c:\%1
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
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.
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.
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
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.
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.
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
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
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
randall
Messages postés
426
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
23 octobre 2024
9
14 févr. 2008 à 15:24
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
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
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
15 févr. 2008 à 12:15
Bonjour,
C'est ça !
Bon courage,
C'est ça !
Bon courage,
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
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.
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.
randall
Messages postés
426
Date d'inscription
jeudi 5 août 2004
Statut
Membre
Dernière intervention
23 octobre 2024
9
15 févr. 2008 à 10:28
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
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
21 juin 2010 à 18:05
2 août 2011 à 10:40