2015-09-23 70 views
0

我想編寫一個批處理文件,該文件會從1到5 這裏顯示的數字是我的代碼:批for循環打印相同數量的多次

@ECHO OFF 
FOR /l %%A in (1,1,5) do (
    SET number=%%A 
    ECHO %number% 
) 

這裏是輸出:

5 
5 
5 
5 
5 

我的代碼有什麼問題?

+0

其實你得到以前的結果作爲'數字'沒有初始化;在第一次運行時,您將收到'ECHO is on.',因爲在擴展時'number'是空的。 – aschipfl

回答

2

你正在失去ENABLEDELAYEDEXPANSION!number!而不是%number%

@ECHO OFF 
SETLOCAL ENABLEDELAYEDEXPANSION 
FOR /l %%A in (1,1,5) DO (
    SET number=%%A 
    ECHO !number! 
) 

當變量內循環改變,或者如果你的結構總是有ENABLEDELAYEDEXPANSION工作和訪問的變量爲!var!,而不是%var%