Passer un argument à un batch sans passer par un fichier

Passer un argument à un batch sans passer par un fichier - Shell/Batch - Programmation

Marsh Posté le 17-10-2010 à 17:00:44    

Bonjour,
 
J'essaye de passer un argument d'entrée à un batch mais sans succès.
La seule méthode qui marche est d'utiliser un fichier texte.
 
Existe-t-il un autre moyen que d'utiliser un fichier texte ?
 
Merci d'avance pour votre aide.

Reply

Marsh Posté le 17-10-2010 à 17:00:44   

Reply

Marsh Posté le 17-10-2010 à 17:24:00    

Quelle version de Windows ?


---------------
Décentralisons Internet-Bépo-Troll Bingo - "Pour adoucir le mélange, pressez trois quartiers d’orange !"
Reply

Marsh Posté le 17-10-2010 à 18:15:21    

Fork Bomb a écrit :

Quelle version de Windows ?


Salut,

 

Je suis sous Windows Xp. J'ai aussi essayé sur Windows 2003.

 

Merci pour ton aide.

Reply

Marsh Posté le 17-10-2010 à 18:16:55    

Ce sujet a été déplacé de la catégorie OS Alternatifs vers la categorie Programmation par O'gure


---------------
Relax. Take a deep breath !
Reply

Marsh Posté le 17-10-2010 à 18:28:00    

Bonjour à tous,

 

La seule différence que je vois entre passer le fichier et passer un argument est le caractère de fin de ligne.

 

Reply

Marsh Posté le 18-10-2010 à 20:19:08    

Re-bonjour à tous,

 

Bon apparemment personne n'a de réponse à ma question ?

 

-:(

Reply

Marsh Posté le 18-10-2010 à 22:57:53    

qu'est ce qui ne fonctionne pas ?


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
Reply

Marsh Posté le 19-10-2010 à 21:45:10    

Xspawn_Lpc a écrit :

qu'est ce qui ne fonctionne pas ?


Salut xspawn_lpc,
 
J'ai un code batch (Essai.bat) dont le contenu a été simplifié (cf la fin du message).  
J'ai crée un raccourci sur mon fichier batch afin de l'appeler en lui passant le paramètre d'entrée Msg1 donc voici ce que je fais:
 

Code :
  1. C:\Projects\Essai.bat < "Msg1"


 
J'obtiens le message d'erreur suivant: Le fichier spécifié est introuvable.
Pour que cela puisse marcher, j'ai crée un fichier MyMsg1.txt donc le contenu est Msg1.
 

Code :
  1. C:\Projects\Essai.bat < C:\Projects\MyMsg1.txt


 
Ce qui me surprend c'est que je sois obligé de passer par un fichier juste pour y mettre un mot.
Qu'en pensez-vous ?
 
Fichier Essai.bat

Code :
  1. @echo off
  2. ECHO This batch allows to print a specific message
  3. ECHO.
  4. ECHO  Msg1: Display the message 1
  5. ECHO  Msg2: Display the message 2
  6. ECHO  Msg3: Display the message 3
  7. ECHO  Msg4: Display the message 4
  8. ECHO.
  9. SET /P CHOICE=Enter a choice:
  10. ECHO.
  11. if %CHOICE% == Msg1 goto MSG_1
  12. if %CHOICE% == Msg2 goto MSG_2
  13. if %CHOICE% == Msg3 goto MSG_3
  14. if %CHOICE% == Msg4 goto MSG_4
  15. :MSG_1
  16.     ECHO Message 1
  17.     GOTO END
  18.    
  19. :MSG_2
  20.     ECHO Message 2
  21.     GOTO END
  22. :MSG_3
  23.     ECHO Message 3
  24.     GOTO END
  25.    
  26. :MSG_4
  27.     ECHO Message 4
  28. :END
  29.     PAUSE

Message cité 1 fois
Message édité par phdenis le 19-10-2010 à 21:45:42
Reply

Marsh Posté le 19-10-2010 à 22:01:09    

phdenis a écrit :


Salut xspawn_lpc,

 

J'ai un code batch (Essai.bat) dont le contenu a été simplifié (cf la fin du message).
J'ai crée un raccourci sur mon fichier batch afin de l'appeler en lui passant le paramètre d'entrée Msg1 donc voici ce que je fais:

 
Code :
  1. C:\Projects\Essai.bat < "Msg1"
 

J'obtiens le message d'erreur suivant: Le fichier spécifié est introuvable.
Pour que cela puisse marcher, j'ai crée un fichier MyMsg1.txt donc le contenu est Msg1.

 
Code :
  1. C:\Projects\Essai.bat < C:\Projects\MyMsg1.txt
 

Ce qui me surprend c'est que je sois obligé de passer par un fichier juste pour y mettre un mot.
Qu'en pensez-vous ?

 

Fichier Essai.bat

Code :
  1. @echo off
  2. ECHO This batch allows to print a specific message
  3. ECHO.
  4. ECHO  Msg1: Display the message 1
  5. ECHO  Msg2: Display the message 2
  6. ECHO  Msg3: Display the message 3
  7. ECHO  Msg4: Display the message 4
  8. ECHO.
  9. SET /P CHOICE=Enter a choice:
  10. ECHO.
  11. if %CHOICE% == Msg1 goto MSG_1
  12. if %CHOICE% == Msg2 goto MSG_2
  13. if %CHOICE% == Msg3 goto MSG_3
  14. if %CHOICE% == Msg4 goto MSG_4
  15. :MSG_1
  16.     ECHO Message 1
  17.     GOTO END
  18.    
  19. :MSG_2
  20.     ECHO Message 2
  21.     GOTO END
  22. :MSG_3
  23.     ECHO Message 3
  24.     GOTO END
  25.    
  26. :MSG_4
  27.     ECHO Message 4
  28. :END
  29.     PAUSE


 

Salut à tous,

 

C'est bon, j'ai trouvé ma réponse:

 

Il suffit de faire tout simplement de taper ça dans une console:

 
Code :
  1. ECHO Msg1 | C:\Projects\Essai.bat
 

Et voilà plus besoin de fichier "inutile".

 

Et si on veut se passer d'ouvrir une console, on met ça dans un fichier batch:

Code :
  1. C:\WINDOWS\system32\cmd.exe /K; ECHO Msg1 | C:\Projects\Essai.bat
 

Si quelqu'un a des infos ...


Message édité par phdenis le 19-10-2010 à 22:26:37
Reply

Marsh Posté le 19-10-2010 à 22:03:02    

si je me souviens bien,  tu récupères les paramètres avec %1 %2...
 
 
essai.bat
 


echo %1
echo %2


 
 
> essai.bat chocolat donut
 
donnera
 
chocolat
donut
 
 
 


---------------
oui oui
Reply

Marsh Posté le 19-10-2010 à 22:03:02   

Reply

Marsh Posté le 19-10-2010 à 23:46:20    

Tu appelles ton batch via une console et non un raccourci sur le batch.
 
Merci qd même

Reply

Marsh Posté le 20-10-2010 à 00:16:08    

Tout est dit dans le poste de art_dupond
 
Pas besoin d'utiliser "|", juste de mettre les arguments séparés par des espaces sur la ligne de commande (ou le raccourcis) après essait.bat


---------------
Quand on aime on ne compte pas. Quel Dilemme lorsque l'on aime compter !
Reply

Marsh Posté le 20-10-2010 à 11:42:04    

Ben non, je veux un batch qui appelle un autre batch  lui passant un argument spécifique.

Reply

Marsh Posté le 20-10-2010 à 13:13:40    

phdenis a écrit :

Ben non, je veux un batch qui appelle un autre batch  lui passant un argument spécifique.


appelant.bat:

Code :
  1. @ECHO OFF
  2. echo appelant test 1
  3. call essai.bat donut chocolat
  4. echo appelant test 2
  5. call essai.bat %1 %2


 
G:\>appelant.bat msg1 msg2
appelant test 1
donut
chocolat
appelant test 2
msg1
msg2

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed