Batch problème opérande

Résolu/Fermé
hunter_civ Messages postés 9 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 27 octobre 2020 - 8 oct. 2020 à 11:54
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 - 9 oct. 2020 à 05:47
Bonjour,


J'ai écris le programme suivant qui incrémente des variables si l'adresse IP testée répond. J'essai de le faire marcher en .cmd mais cela ne fonctionne pas, la variable failures ne prends pas de valeur, et total ne prends pas 0 comme valeur initiale.

Aussi, dans la boucle fort à chaque passage de set la ommande me répond: il manque une oprande

if not exist stats.txt echo 0 0 0 > stats.txt
for /f "TOKENS=1,2,3" %%a in (stats.txt) do @(
@set /a total=%a
@set /a failures=%b
@set /a n=%c
)

ping 127.0.0.1 | find "TTL"
if errorlevel 1 (
set result=FAIL
set /a failures+=1
set /a n+=1
) ELSE (
set result=TRUE
set /a n=0
)

set /a total+=1
echo %date% %time% %result% >> log.txt
echo %total% %failures% %n% > stats.txt

if /I "%n%" EQU "10" (
@set /a n=0
echo ERROR GET TO WORK
)

Merci pour l'aide apportée




Configuration: Windows / Chrome 85.0.4183.121

1 réponse

barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908
8 oct. 2020 à 19:49
Bonjour,

Les variables appartenant à la boucle FOR doivent être précéder de 2 signes %%

for /f "TOKENS=1,2,3" %%a in (stats.txt) do @(
@set /a total=%%a
@set /a failures=%%b
@set /a n=%%c
)

0
hunter_civ Messages postés 9 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 27 octobre 2020
8 oct. 2020 à 23:20
exact merci!

Par contre, sais-tu pourquoi la boucle if final ne fonctionne pas, n ne se met pas 0 une fois qu'il atteint la valeur de 10?

J'ai essayé en enlevant l'@ devant le set mais ça ne change rien.

Enfin, est-il possible de faire afficher un message à l'écran, un echo ne semble pas fonctionner, l'affichage disparait apres exécution du programme.
0
barnabe0057 Messages postés 14440 Date d'inscription lundi 2 mars 2009 Statut Contributeur Dernière intervention 19 avril 2024 4 908 > hunter_civ Messages postés 9 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 27 octobre 2020
9 oct. 2020 à 05:47
if %n% EQU 10 (
set n=0
echo ERROR GET TO WORK
)
pause
0