[WSH] Resultat de commande, remplacer le Delims

Resultat de commande, remplacer le Delims [WSH] - Shell/Batch - Programmation

Marsh Posté le 23-09-2008 à 14:57:48    

Bonjour a tous  
 
J'ai le resultat d'une commande qui a cette tronche là:

Code :
  1. DeviceNo   Board  Bus  ScsiID  LUN  DeviceType  InquiryData
  2. -----------------------------------------------------------
  3. 0          1      0    0       0    258(CDROM)   MITSUMI CD
  4. 1          4      0    6       0    64          ESG-SHV SCA
  5. 2          4      2    0       0    2 (HDD)     MYLEX   Acc
  6. 3          4      4    6       0    64          MYLEX   GAM
  7. 4          5      0    0       0    6           plop
  8. 5          5      0    1       0    6           plop1
  9. 6          5      0    2       0    6           plop2
  10. 7          5      0    3       0    6           plop3
  11. 8          5      0    4       0    6           truc
  12. 9          5      0    5       0    6           truc1


 
Je parcours ce resultat avec un :

Code :
  1. for /f "usebackq skip=2 tokens=2,* delims= " %a in (`commande.exe`) do (echo "Board : %a, Bus : %b, ScsiID : %c, LUN : %d, DeviceType : %e, DeviceType : %f" )


 
Mon problème que les token n°2 est bien le "Board" mais le token n°3 contient le reste de la ligne (et même avec un "tokens=2,3,4,5" ). J'en viens a me dire que c'est parce que le delims=" " n'est pas respecté en fait.
 
D'ou ma question, y aurait-il un moyen de forcer la substitution de séries d'espace en un seul espace .
un genre de "sed -e 's/ */ /' " ?
 
Merci a tous
 

Reply

Marsh Posté le 23-09-2008 à 14:57:48   

Reply

Marsh Posté le 23-09-2008 à 15:42:04    

Bon bah j'ai craqué j'ai installé cigwin :) mais bo ca me plairait de savoir :D
 
Si j'ai bien compris chaque caractère dans delims est considèré comme un un séparateur. En gros pour delims=";/ _" les séparateurs seront ";" ou "/" ou " " ou "_" ... donc mon delims=" " devrait marché :s

Reply

Sujets relatifs:

Leave a Replay

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