Batch

[Résolu/Fermé]
Signaler
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020
-
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
-
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

Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
hello
et avec
echo %%c %org% %dest%  >> %Ctrl_box%
à la place de
echo %%c %%d %%e  >> %Ctrl_box% 
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020

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...
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020

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." ???
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
ça veut dire que %org% est vide
essayer
setlocal enableDelayedExpansion
au début du .bat et
echo !org! >> %ctrlpit% 
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020

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 ! ;-)
Messages postés
260
Date d'inscription
lundi 28 novembre 2011
Statut
Membre
Dernière intervention
7 août 2020

A clôturer ! Merci.
Messages postés
18246
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
21 juillet 2021
5 330
cliquer sur Résolu au dessus du premier message