[Shell/Dos] Pipe dans une boucle FOR

Pipe dans une boucle FOR [Shell/Dos] - Shell/Batch - Programmation

Marsh Posté le 27-12-2011 à 19:54:15    

Bonjour,  
 
Je rencontre un petit soucis.
Je cherche a assigner le resultat d'une commande dans une variable.
voici mes commandes de base

Code :
  1. D:\>%uxexe%\uxshw UPR UPR=ANCT120TRT | find "label"
  2.        | label        : ANADEFI - Traitement MAJ-Tiers.bat


 
Je cherche a recuperer juste le label donc
si j'essaie juste un  

Code :
  1. for /f %i in ('%uxexe%\uxshw UPR UPR=ANCT120TRT ^| find "label"') do echo %i


je n'ai aucun resultat, alors que je devrait au moins recuperer ma ligne de resultat non ?
 
au final je pense jouer avec les tokens (tokens=4-*) pour recuperer que le label final (ANADEFI-....)
mais deja la base, ca veut pas.
une idée ?


---------------
Serveur HFR - OpenTTD
Reply

Marsh Posté le 27-12-2011 à 19:54:15   

Reply

Marsh Posté le 28-12-2011 à 01:35:00    

déjà le caractère | risque te poser des soucis.
 
Ensuite sans delim dans le for, il va utiliser les tabulations  pour séparer le texte en différentes chaines. Dans ton exemple %i ramène la 1ere chaine à priori "|"
 
 
Pour savoir ou tu en es tu peut faire un truc du style :
 

Code :
  1. for /f "token=*" %%i in ('%uxexe%\uxshw UPR UPR=ANCT120TRT ^| find "label"') do echo %%i %%j %%k %%l %%m


Message édité par Xspawn_Lpc le 28-12-2011 à 11:58:12

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

Marsh Posté le 28-12-2011 à 11:14:22    

j'ai essayer avec un "tokens=* et delims=" ou juste delims ou juste token, dans tous les cas, j'ai pas de résultat :s


---------------
Serveur HFR - OpenTTD
Reply

Marsh Posté le 28-12-2011 à 11:57:32    

et si tu redirige le résultat dans un fichier ?

Code :
  1. D:\>%uxexe%\uxshw UPR UPR=ANCT120TRT | find "label" >result.txt


Et ensuite fait une boucle for qui parcours ce fichier ?

Code :
  1. for /f "token=*" %%i in (result.txt) do echo %i %%j %%k %%l %%m


testé sous win7 ça fonctionne même avec le "|"


Message édité par Xspawn_Lpc le 28-12-2011 à 11:57:54

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

Marsh Posté le 28-12-2011 à 16:16:35    

Bah c'est ce que j'ai fait au final, ca ajoute une ligne de commande, mais au moins ca marche correctement.


---------------
Serveur HFR - OpenTTD
Reply

Sujets relatifs:

Leave a Replay

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