2013-04-01 5 views
0

Voici une boucle for dans un fichier bat, cette boucle prend les numéros 1 à 100 et utilise l'opérateur mod sur chaque entier. J'ai de la difficulté à calculer la moyenne après la fin de la boucle? Est-ce que quelqu'un peut m'aider avec ça? J'ai essayé cette déclaration:Erreur avec FOR LOOP dans BAT FILE (WINDOWS)

echo VAR/100 

echo !VAR!/100 

SET /A TOTAL=%VAR%/100 

aucun travail.

ce qui suit est le code actuel j'ai:

for /L %%i in (1, 1, 100) do (

SET /A VAR=%%i %% 5 

SET /A TOTAL=%VAR%/100 

echo !VAR! 

echo !TOTAL! 

echo. >> results.txt 
+0

Lorsque la boucle prend fin? Le support de fin n'est pas là. Et votre formule semble étrange, car le total est toujours 0 – jeb

Répondre

2

Essayez

SET /A TOTAL=!VAR!/100 

var! renvoie la valeur RUN-TIME de var. %% Var renvoie la valeur parse-TIME (ie. Avant l'instruction a été exécutée)

(à condition, bien sûr, que vous avez déjà exécuté un

SETLOCAL ENABLEDELAYEDEXPANSION 
instruction

)

+0

Vous n'avez pas besoin d'expansion retardée ici. 'Set/a total = var/100' fonctionne aussi – jeb

+0

Je ne sais pas si cela fonctionne correctement, c'est juste retourner un tas de zéros. Voici le code que j'utilise pour ajouter aux résultats dans un fichier texte.SETLOCAL ENABLEDELAYEDEXPANSION pour/L %% i dans (1, 1, 100) do ( SET/A VAR = %% i %% 5 SET/A !!!!!. TOTAL = VAR/100 écho VAR d'écho TOTAL d'écho >> results.txt écho l'opération mod est:!. VAR >> results.txt écho >> results.txt – Manu

+0

désolé Pour les erreurs d'édition – Manu