2017-10-20 24 views
0

Je veux transférer tous les nombres pairs entre 1 et 100 dans un fichier .csv. J'ai essayé ceci:Batch For/L (0, 1, 100) Boucle uniquement les nombres pairs?

SET CSV_Name= 
SET /P CSV_Name=Please enter the CSV Name. 

ECHO Number;Square;Cubic >> C:\Users\A78100264\Desktop\%CSV_Name%.csv 

FOR /L %%A IN (0, 1, 100) DO (
SET /A d=%%A/2 
SET /A e=%d% * 2 
IF %%A == %e% (
ECHO %%A 
ECHO %%A >> C:\Users\A78100264\Desktop\%CSV_Name%.csv 
) 
) 

Mais cela ne fonctionne pas. Est-ce que quelqu'un a une meilleure idée?

+2

Que voulez-vous dire par "d ça ne marche pas? " Une erreur? Obtenir aussi des nombres impairs? Peux-tu expliquer? – Tom

+0

Rechercher _delayed expansion_. Comme vous l'avez, les valeurs de '% d%' et '% d%' sont étendues _once_ quand la boucle 'for' commence, et non (comme on pourrait s'y attendre) ré-évalué chaque fois autour de la boucle. – TripeHound

Répondre

0

Je viens de réaliser je peux faire:

FOR /L %%A IN (0, 2, 100) DO (
ECHO %%A 
ECHO %%A >> C:\Users\A78100264\Desktop\%CSV_Name%.csv 
) 
+0

Oui. Cela aide lorsque vous lisez le fichier d'aide. '(début, étape, fin)' – Squashman

1

Votre propre réponse sorties en fait tous les nombres compris entre 0 et 100 inclus:

FOR /L %%A IN (0 2 100) DO … 

Techniquement, cela permettrait d'atteindre l'objectif de votre question, (tous les nombres pairs entre 1 et 100):

FOR /L %%A IN (2 2 98) DO …