2017-10-20 27 views
0

Je reçois toujours l'erreur Missing Operator. Je pense que j'utilise "!" complètement faux mais je ne sais pas où l'utiliser.Comment utiliser EnableDelayedExpansion dans un FOR/L?

ECHO ON 

SETLOCAL EnableDelayedExpansion 

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

ECHO Zahl;Quadrat;Kubik >> C:\Users\Jeff\Desktop\%CSV_Name%.csv 

SET Square=0 
SET Cubic=0 
FOR /L %%A IN (2, 2, 100) DO (
SET /A !Square! = %%A * %%A 
SET /A !Cubic! = %%A * %%A * %%A 
ECHO %%A 
ECHO !Square! 
ECHO %%A;!Square!;!Cubic! >> C:\Users\Jeff\Desktop\%CSV_Name%.csv 
) 

Quelqu'un peut-il expliquer ce que je fais mal?

Répondre

1

essayer avec

SET /A Square = %%A * %%A 
SET /A Cubic = %%A * %%A * %%A 

vous n'avez pas besoin ! ou % lorsque vous définissez une nouvelle valeur à une variable.

+0

Cela ne fonctionne pas. Je reçois par exemple. 'SET/A Carré = 70 * 70 ECHO! Carré!' – HenS

+0

@HenS - que voulez-vous dire par ne pas travailler? Est-ce dans la sortie ou l'erreur est là encore? – npocmaka

+0

nvm. ça marche. Je vous remercie. – HenS

1
SET /A !Square! = %%A * %%A 

tentera de définir une variable appelée (le contenu de square)

SET /A Square = %%A * %%A 

établira square.

!var! récupérera la variable contenu du courant le var alors que %var% récupérera la valeur initiale de la variable (par exemple qu'elle change en raison du fonctionnement de la boucle.) - telle qu'elle était lorsque la déclaration était vérifié pour la validité ("analysé"). En dehors d'une boucle, !var! = %var% mais il est conventionnel d'utiliser %var% et de réserver !var! pour une valeur que peut changer pendant le fonctionnement d'un code block (séquence de lignes entre parenthèses).