Lire un fichier texte avec un .bat

Lire un fichier texte avec un .bat - Shell/Batch - Programmation

Marsh Posté le 08-06-2005 à 10:49:53    

Salut,
 
J'ai reussi a faire un script en me basant sur un autre script, mais je comprend pas certaines lignes.
 
Voici le script :
 

Code :
  1. REM #----------------- CONFIGURATION -----------------------
  2. REM # Saisissez ici le dossiers dans lequel vous voulez copier les sauvegardes
  3. SET DOSSIER= "F:\sauvegardes"
  4. REM #--------------- FIN CONFIGURATION ---------------------
  5. REM #Ligne separant chaque lancement du script
  6. ECHO.
  7. ECHO --------------------------le %DATE:~5,2%/%DATE:~8,2%/%DATE:~11,4%------------------------------
  8. REM #Lecture du nom des machines dans le fichier %Fichier% ***
  9. FOR /F %%i IN (%1) Do call :INSTALLATION %%i
  10. GOTO FIN
  11. REM #Declaration des variables
  12. :INSTALLATION
  13. SET Machine=%1
  14. SET Compteur=0
  15. REM #Execute la commande ping
  16. FOR /F "tokens=1" %%i IN ('ping %Machine%') DO call :TestPing %%i
  17. GOTO TestPingSuite
  18. REM #Teste si les mot Délai ou Hôte sont contenu dans les lignes générées par la commande ping comme premier mot.
  19. REM #Si oui, alors on incremente le compteur Compteur
  20. :TestPing
  21. set ChainePing=%1
  22. REM #Recherche les messages d'erreurs francais (OS Francais)
  23. IF %ChainePing%Chaine==D‚laiChaine set /a Compteur=%Compteur%+1
  24. IF %ChainePing%Chaine==H“teChaine set /a Compteur=%Compteur%+1
  25. IF %ChainePing%Chaine==MauvaiseChaine set /a Compteur=%Compteur%+1
  26. GOTO FIN
  27. REM #A la fin du for /F on entre dans ce test. Si le compteur = 0 alors le ping est bon
  28. :TestPingSuite
  29. if %Compteur%==0 GOTO PingOK
  30. GOTO NoPing
  31. REM #On affiche un message comme quoi le poste ne repond pas au ping
  32. :NoPing
  33. ECHO %TIME:~0,2%h%TIME:~3,2%m%TIME:~6,2%s - La machine %Machine% est introuvable
  34. GOTO FIN
  35. REM #On sauvegarde les fichiers puis on éteint la machine
  36. :PingOK
  37. ECHO %TIME:~0,2%h%TIME:~3,2%m%TIME:~6,2%s - Sauvegarde de la machine %Machine% en cour
  38. xcopy \\%Machine%\partage-v\ %DOSSIER%\%Machine% /s /e /v /y /d /I /c /o /k /q
  39. ECHO %TIME:~0,2%h%TIME:~3,2%m%TIME:~6,2%s - Demande d'arret de la machine %Machine%
  40. psshutdown \\%Machine%  -k -f -c -t 15 -m "Arret quotidien automatique : sauvegardez votre travail rapidement."
  41. GOTO FIN
  42. :FIN


 
 
Je ne comprend pas les lignes  
 
FOR /F %%i IN (%1) Do call :INSTALLATION %%i
 
et  
 
FOR /F "tokens=1" %%i IN ('ping %Machine%') DO call :TestPing %%i
set ChainePing=%1
 
 
A quoi correspondent les % ?
 
Merci d'avance pour votre aide :jap:
 
Yann

Reply

Marsh Posté le 08-06-2005 à 10:49:53   

Reply

Marsh Posté le 18-07-2005 à 11:31:47    

Pour appeler des variable elle sont placé entre %.
Le %%i dans une boucle for correspond au premier carractere de la reponse au ping.
Le %1 est la valeur envoyer avec le batch style start batch.bat valeur
si tu fait echo %1 tu aura valeur!
Tu peut aussi les creer comme sa:
set valeur=kelkechose
echo %valeur%
Ca affichera kelkechose!
Bon j'ai pas était trés claire mais jsuis HS aujourd 'hui si ta pas tous compris demande!

Reply

Sujets relatifs:

Leave a Replay

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