Rechercher : dans
Par :

[BAT] variable

Dernière réponse le 16 avr 2009 à 21:12:15 xav3601, le 16 avr 2009 à 14:52:47 
 Signaler ce message aux modérateurs

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!

Configuration: Windows XP
Firefox 3.0.8

Meilleures réponses pour « [BAT] variable » dans :
Variables d'environnement Voir Variables d'environnement Une variable d'environnement est une valeur dynamique, chargée en mémoire, pouvant être utilisée par plusieurs processus fonctionnant simultanément. Sur la plupart des systèmes d'exploitation, les emplacement de...
[Bash] La variable d'environnement PATH VoirLa variable d'environnement PATH I. Préambule II. C'est quoi le shell ? III. Définition IV. Séance de dissection V. Ajouter un répertoire à la variable PATH VI. Et puis... I. Préambule Sous les systèmes GNU/Linux qu'on le veuille ou...
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
Comment récupérer le résultat d'une commande dans une variable VoirComment récupérer le résultat d'une commande dans une variable Préambule Syntaxe Exemples Préambule Il est bien souvent nécessaire de récupérer le résultat d'une commande (ou de son code retour) dans une variable afin de pouvoir...
Javascript - Les variables VoirLe concept de variable Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. En Javascript, les noms de variables peuvent être aussi long que l'on désire,...
PHP - Les variables VoirConcept de variable avec PHP Une variable est un objet repéré par son nom, pouvant contenir des données, qui pourront être modifiées lors de l'exécution du programme. Les variables en langage PHP peuvent être de trois...
PHP - Les variables d'environnement VoirNotion de variable d'environnement Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script...

1

scriptiz, le 16 avr 2009 à 14:53:57

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.

Répondre à scriptiz

2

xav3601, le 16 avr 2009 à 14:55:35

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!

Répondre à xav3601

3

domdom, le 16 avr 2009 à 15:33:30

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

....
)

Répondre à domdom

4

xav3601, le 16 avr 2009 à 15:36:17

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??"

Répondre à xav3601

5

xav3601, le 16 avr 2009 à 15:44:47

Pk la en l'occurence ca marche pas!!!

Répondre à xav3601

6

domdom, le 16 avr 2009 à 15:44:47

Set CHEM=I:\bin\

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


==> affiche OK

Répondre à domdom

7

xav3601, le 16 avr 2009 à 16:04:47

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...

Répondre à xav3601

8

domdom, le 16 avr 2009 à 16:12:03

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%
)

Répondre à domdom

9

xav3601, le 16 avr 2009 à 16:15:08

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...

Répondre à xav3601

10

dubcek, le 16 avr 2009 à 16:23:57

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

Répondre à dubcek

11

xav3601, le 16 avr 2009 à 16:25:56

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!

Répondre à xav3601

12

 xav3601, le 16 avr 2009 à 21:12:15

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!

Répondre à xav3601
Collection CommentÇaMarche.net