2017-10-20 26 views
0

我不斷收到錯誤操作失敗。我想我正在使用「!」完全錯誤,但我不知道在哪裏使用它。如何在FOR/L中使用EnableDelayedExpansion?

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 
) 

有人可以解釋我做錯了什麼嗎?

回答

1

嘗試

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

設置一個新值變量,當你不需要!%

+0

這並不奏效。我舉個例子。 'SET/A Square = 70 * 70 ECHO!Square!' – HenS

+0

@HenS - 你的意思是不工作?這是在輸出還是錯誤再次出現? – npocmaka

+0

nvm。它確實有效。謝謝。 – HenS

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

將嘗試設置(的square內容)

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

命名的變量將設置square

!var!將檢索變量var當前內容而%var%將檢索變量的初始值(即,因爲它改變了由於環路的操作。) - 原樣當聲明是檢查有效性(「解析」)。在循環之外,!var! = %var% = %var% = %var%和保留!var!的傳統觀點認爲可能code block(括號化的行序列)的操作期間改變。

相關問題