[BATCH]Recuperation informations fichier

Recuperation informations fichier [BATCH] - Shell/Batch - Programmation

Marsh Posté le 22-01-2006 à 20:15:41    

Bonjour à tous. Je vous explique j'ai un fichier texte, j'aimerai récupérer une information (un chiffre par exemple) de ce fichier texte et l'attribuer à une variable dans mon prgramme batch. J'ai essayé FOR /F %%A in (kelkechose.txt) DO mais je ne vois pas comment recupérer l'information dans une variable par la suite.
Merci d'avance :)

Reply

Marsh Posté le 22-01-2006 à 20:15:41   

Reply

Marsh Posté le 22-01-2006 à 20:18:12    

Code :
  1. for /f %%I in (fichier.txt) do set MAVARIABLE=%%i

Reply

Marsh Posté le 22-01-2006 à 20:25:21    

couak a écrit :

Code :
  1. for /f %%I in (fichier.txt) do set MAVARIABLE=%%i



P'tite précision : cette boucle récupère la dernière ligne de fichier.txt dans la variable MAVARIABLE. En fonction du format du fichier d'entrée, la commande peut varier un peu.

Reply

Marsh Posté le 22-01-2006 à 21:34:14    

merci sa fonctionne mais j'ai une autre question... :) avec mon fichier batch je lance la commande net send et j'aimerai que si l'ip de la machine n'existe pas sur le reseau, il envoi un message mais comment fait on pour gérer les erreurs??? :)

Reply

Marsh Posté le 22-01-2006 à 22:14:06    

                         /!\retour premiere question/!\  
Excusez moi mais lorsque je recupère l'information dans MAVARIABLE cela ne fonctionne pas si il y a un espace, par exemple "salut" il renvoi "salut" mais si on met "salut sa va ?" il renvoi "salut" :s comment faire pour qu'il prenne en compte toute la chaine?

Reply

Marsh Posté le 22-01-2006 à 22:16:55    

Fais  
for /?
pour plus d'infos + exemples.

Reply

Marsh Posté le 22-01-2006 à 22:24:42    

j'ai pas trouver ce que je veux mais tu n'aurai pas une idée ?

Reply

Marsh Posté le 22-01-2006 à 22:29:45    

c'est bon l'histoire des espace j'ai trouvé il fauut utiliser tokens et delims mais par contre pour la gestion des erreurs je trouve pa du tout :(

Reply

Marsh Posté le 22-01-2006 à 22:44:36    

Qu'entends-tu par gestion des erreurs ?

Reply

Marsh Posté le 22-01-2006 à 22:52:35    

par exemple j'execute la command net send si l'alias n'existe pas sur le reseau le message est envoyé a tous le reseau avec *

Reply

Marsh Posté le 22-01-2006 à 22:52:35   

Reply

Marsh Posté le 22-01-2006 à 22:54:21    

ERRORLEVEL :o

Reply

Marsh Posté le 23-01-2006 à 16:53:22    

Oui voila mais comment l'utiliser s'il te plait?

Reply

Marsh Posté le 23-01-2006 à 16:57:37    

if %ErrorLevel% == 0 fais_ceci else fais_cela

Reply

Marsh Posté le 23-01-2006 à 18:52:13    

d'accord je vais essayer merci nglechau ;)

Reply

Marsh Posté le 23-01-2006 à 19:00:15    

excuse moi dans mon cas: j'utilise la commande net send et cela me renvoi une erreur net send helpmsg 2273. Quelle condition utiliser avec ERRORLEVEL pour cette erreur?

Reply

Marsh Posté le 23-01-2006 à 19:03:15    

Tu évalues cette variable juste après avoir appelé net send.

Reply

Marsh Posté le 23-01-2006 à 20:39:18    

c'est a dire :  
 
if "%ip%" == "3" net send ***.***.*.* %mes%
if "%ERRORLEVEL%"!="0" GOTO blabla
 

Reply

Marsh Posté le 23-01-2006 à 20:39:51    

en fait la je veux que si l'alias n'est pas sur le reseau il l'envoi a tous le reseau

Reply

Marsh Posté le 23-01-2006 à 21:02:44    

%ErrorLevel% est une variable système et un entier, pas besoin de le quoter.
 
L'opérateur de comparaison != n'existe pas.
 
Fais de différents tests pour connaître la valeur ErrorLevel retournée dans chaque cas.

Reply

Marsh Posté le 23-01-2006 à 21:11:34    

merci pour tes precisions ;)

Reply

Marsh Posté le 23-01-2006 à 21:23:31    

comment faire pour faire le signe different alors

Reply

Marsh Posté le 23-01-2006 à 21:28:46    

if not %ERRORLEVEL% 1 do GOTO foo

Reply

Marsh Posté le 23-01-2006 à 21:30:17    

Il te manque un == KangOl ;)
 
Sinon, pour la liste complète des opérateurs :
if /?

Reply

Marsh Posté le 23-01-2006 à 21:32:35    

il me reste beaucoup à apprendre lol
merci a vous

Reply

Marsh Posté le 23-01-2006 à 21:33:05    

sans indiscretion vous faite koi comme etude? ou comme travail?

Reply

Marsh Posté le 23-01-2006 à 22:27:05    

Etudes en info pour moi, mais de toute façon, Windows et les batchs ne sont pas enseignés à l'école ;)
 
Sinon, je ne pense pas que les modos soient ravis de nos mylife.com ;)

Reply

Marsh Posté le 23-01-2006 à 22:36:36    

si moi j'ai decouvert les batch à l'école cette année en bts ig ! ^^

Reply

Marsh Posté le 23-01-2006 à 22:54:48    

Ah OK. On ne fait pas les mêmes études ;)
 
Si tu as des soucis, n'hésite pas de revenir et surtout n'oublie pas que  l'aide de Windows contient beaucoup d'infos sur les syntaxes + exemples.
 
Un bon site sur le sujet :
www.robvanderwoude.com

Reply

Marsh Posté le 24-01-2006 à 20:13:53    

ok c'est noté merci ;)

Reply

Marsh Posté le 24-01-2006 à 20:14:31    

sino sans indiscretion c'est quoi comme type d'etude en info?

Reply

Marsh Posté le 24-01-2006 à 21:52:05    

Etudes universitaires, rien de plus classique ;)

Reply

Marsh Posté le 25-01-2006 à 18:16:24    

ha ok sinon j'ai une autre question tu ne serai pas comment redemarrer le service d'envoie des fichiers a l'aide d'un fichier batch ??  :/

Reply

Marsh Posté le 25-01-2006 à 20:38:54    

je voulais dire le service d'envoi et de reception de message (net send)

Reply

Marsh Posté le 25-01-2006 à 21:44:35    

Tu voulais dire le service d'Affichage des Messages ?
 
Si oui, la commande est  
sc stop Messenger
et
sc start Messenger
 
Ca marche aussi avec :
net start/stop

Reply

Marsh Posté le 25-01-2006 à 21:46:43    

jte remercie ;)

Reply

Marsh Posté le 15-02-2006 à 11:44:28    

salut,
 
est il possible d'afficher la valeur Errorlevel???
 
A+

Reply

Marsh Posté le 15-02-2006 à 13:05:21    

echo %ErrorLevel% ? :D

Reply

Marsh Posté le 15-02-2006 à 13:55:16    

Evidemment. la teuhon. merci ;)

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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