Posez votre question Signaler

[BAT] variable [Résolu]

xav3601 3057Messages postés 10 novembre 2008Date d'inscription 23 mai 2011Dernière intervention - Dernière réponse le 16 avril 2009 à 21:12
Bonjour,
Je suis en train de me battre avec un script bat... et surtout avec les variables!
Je souhaite récupérer differentes valeur dans des variables comme suit:
for /F "Tokens=1-2 Delims= " %%i in (\\Lsinfo\infodoc\02-Sys~1\03-Sys~1\01-Par~1\invent~1\ping\ordinateurs.txt) do (
set etat="eteint"
set serveur=%%i
set ip=%%j
pause
mon probleme?
quand j'utilise par la suite les variables etat, serveur et ip elles sont vides...
est ce que vous voyez d'ou ca peut venir svp?
merci d'avance!
Lire la suite 

[BAT] variable »

12 réponses
Réponse
+0
moins plus
Ca fait longtemps mais il me semble qu'il faut mettre des % autour des noms de variables quand on les utilises par la suite, je me trompe peut-être, cherche un petit cours ou des exemples sur internet sinon.
xav3601 - 16 avril 2009 à 14:55
Oui je sais ^^
c'est vrai j'ai pas mis la partie ou on je les utilises!
mais tout simplement si je fais:
echo %etat%

et bien ca n'affiche rien et si je l'utilise comme suit:

if %etat% = "allume"

a l'execution ca met:

if "" = "allume"

...

J'ai deja regarder different tuto ou autre mais je trouve pas!
Ajouter un commentaire
Réponse
+0
moins plus
dans un bat mettre %% devant les variables


dir %1 /s | find "pertoire" >C:\temp\d1.log


for /f "tokens=3 delims= " %%i in (C:\temp\d1.log) do (
dir /A:-D /A:A %%i >C:\temp\d2.log 2>>C:\temp\err.log

....
)
Ajouter un commentaire
Réponse
+0
moins plus
Merci d'avoir repondu!
donc dans mon cas comment utilisé les variables?

en faisant:
set etat="eteint"
if %%etat=="eteint"



ca devrais reussir le test??"
Ajouter un commentaire
Réponse
+0
moins plus
set CHEM=I:\bin\

echo %CHEM%
if '%CHEM%' == 'I:\bin\' echo OK


==> affiche OK
Ajouter un commentaire
Réponse
+0
moins plus
pk la en l'occurence ca marche pas!!!
Ajouter un commentaire
Réponse
+0
moins plus
Ok merci!
Alors ce que tu as dis marche, mais dans mon cas ca a l'air plus compliqué...

en fait tout viens du fait que c'est dans un for!
exemple:
Set etat=eteint
echo %etat%

ca ca marche ca affiche eteint

par contre ca:

for /F "Tokens=1-2 Delims= " %%i in (\\Lsinfo\infodoc\02-Sys~1\03-Sys~1\01-Par~1\invent~1\ping\ordinateurs.txt) do (
Set etat=eteint
echo %etat%
)

ca marche pas ca affiche:
commande activée/désactivée
suivant si j'ai un @echo off au debut ou pas...
Ajouter un commentaire
Réponse
+0
moins plus
Pour faire un test :
dans ordinateurs.txt j'ai 2 lignes :
a
b
<eof>

le script suivant affiche 2 fois "eteint"
Set etat=eteint


for /F "Tokens=1-2 Delims= " %%i in (ordinateurs.txt) do (
echo %etat%
)
Ajouter un commentaire
Réponse
+0
moins plus
Oui mais le probleme c'est que dans mon cas, je veux declarer la variable dans le for et l'utiliser dans le for et c'est ca qui posse probleme!
par exemple je reprend ton ex:

dans ordinateurs.txt j'ai 2 lignes :
poste1 ip1
poste2 ip2
<eof>

for /F "Tokens=1-2 Delims= " %%i in (\\Lsinfo\infodoc\02-Sys~1\03-Sys~1\01-Par~1\invent~1\ping\ordinateurs.txt) do (
Set poste=%%i
Set ip=%%j
echo %poste%
echo %ip%
)

et la ca marche pas!
Alors je sais pas si y'a un moyen de faire ce que je veux...
Ajouter un commentaire
Réponse
+0
moins plus
essayer

setlocal enableDelayedExpansion
for /F "Tokens=1-2 Delims= " %%i in (\\Lsinfo\infodoc\02-Sys~1\03-Sys~1\01-Par~1\invent~1\ping\ordinateurs.txt) do (
Set poste=%%i
Set ip=%%j
echo !poste!
echo !ip!
)
setlocal disableDelayedExpansion
Ajouter un commentaire
Réponse
+0
moins plus
Interressant ca a l'air de marcher au premiere abord!
je vais faire des test plus approfondi!
j'avais vu cet notion en cherchant mais j'avais mal du comprendre son utilite lol
en tout cas un grand merci!
je reviens vous dire si ca marche correctement!
Ajouter un commentaire
Réponse
+0
moins plus
Voila c'est tout bon j'ai reussi a faire mon script qui ping une liste de serveur et qui crée une page html avec le resultat et des couleurs en fonction de l'etat :D
merci a vous!
Ajouter un commentaire
Ce document intitulé « [BAT] variable » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
5 extensions si vous voulez revenir à l'ancien Facebook