Batch

Résolu/Fermé
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020 - 21 mai 2013 à 11:19
dubcek Messages postés 18583 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 2 février 2023 - 22 mai 2013 à 10:00
Bonjour,
Sous commande dos la boucle suivante me donne le résultat attendu :
for /f "tokens=1" %c in ('type c:\FHE\ident_error.txt') do (
set var2=%c
for /f "tokens=2 delims='" %d in ('peldsp display_trans -i %c^|find "x_org_alias"') do set org=%d
for /f "tokens=2 delims='" %e in ('peldsp display_trans -i %c^|find "x_destination"') do set dest=%e
echo %c %org% %dest% >> c:\FHE\Ctrl_box.log
)

Voici le résultat dans le fichier "Ctrl_box.log" :
0000017 TOTO TITI
0000101 TOTO DUDU

Par contre je n'arrive pas obtenir le même résultat dans un script .bat.
Voici le script :
for /f "tokens=1" %%c in ('type c:\FHE\ident_error.txt') do (
set var2=%%c
for /f "tokens=2 delims='" %%d in ('peldsp display_trans -i %%c^|find "x_org_alias"') do set org=%%d
for /f "tokens=2 delims='" %%e in ('peldsp display_trans -i %%c^|find "x_destination"') do set dest=%%e
echo %%c %%d %%e >> %Ctrl_box%
)

Le résultat dans le fichier "Ctrl_box.log" est le suivant :
0000017 %d %e
0000101 %d %e

Quelqu'un pourrait-il m'aider à résoudre cette anomalie ?

Merci

3 réponses

dubcek Messages postés 18583 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 2 février 2023 5 584
21 mai 2013 à 12:32
hello
et avec
echo %%c %org% %dest%  >> %Ctrl_box%
à la place de
echo %%c %%d %%e  >> %Ctrl_box% 
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
21 mai 2013 à 13:24
Salut Dubcek,

Je viens d'essayer ta proposition, et j'obtiens le résultat suivant :
0000017
0000101

Les variables %%d et %%e ne sont visiblement plus prises en compte.

Dur... dur...
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
21 mai 2013 à 14:13
Je viens d'ajouter un echo dans ma boucle :
for /f "tokens=1" %%c in ('type c:\FHE\ident_error.txt') do (
set var2=%%c
for /F "tokens=2 delims='" %%d in ('peldsp display_trans -i %%c^|find "x_org_alias"') do set org=%%d
echo %org% >> %ctrlpit%

Et voici le résultat :
0000017
Commande ECHO d'sactiv'e.

C'est quoi ce "Commande ECHO d'sactiv'e." ???
0
dubcek Messages postés 18583 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 2 février 2023 5 584
21 mai 2013 à 14:51
ça veut dire que %org% est vide
essayer
setlocal enableDelayedExpansion
au début du .bat et
echo !org! >> %ctrlpit% 
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
21 mai 2013 à 15:25
Bravo ! c'est la solution !
En revanche %org% n'est pas vide.

Mais le principal c'est que ça marche maintenant.
Merci beaucoup pour ta collaboration ! ;-)
0
Ka-El Messages postés 260 Date d'inscription lundi 28 novembre 2011 Statut Membre Dernière intervention 7 août 2020
22 mai 2013 à 09:57
A clôturer ! Merci.
0
dubcek Messages postés 18583 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 2 février 2023 5 584
22 mai 2013 à 10:00
cliquer sur Résolu au dessus du premier message
0