2014-06-16 84 views
0

所以我正在爲我的一個類的最終項目工作,目標基本上是讓用戶輸入一個初始投資,並且該值會折舊的年數。它由一個由投資除以年數決定的不變價值貶值。FOR循環變量算術 - 批處理腳本

在for循環中,它應該從'bookvalue'中減去'annual'並打印出每年的新bookvalue ...數學本身正常工作(我相信?),因爲如果我在外部回顯值我的循環他們是他們應該是,但與循環內的echo語句我沒有得到我需要它輸出(bookvalue不會改變循環內)。

不確定該怎麼辦,谷歌還沒有做得很好。感謝任何可以給予的幫助!

@ECHO OFF 
:HEADER 
REM Program : final_q8.bat 
REM Author : 
REM Date : 
REM Purpose : if statement integer sort 
REM ----------------------------------------------- 

:START 
CLS 

SET /P INVEST="Please enter the initial investment amount: " 
SET /P YEARS="Please enter the # of years the machine will be depreciated: " 
SET /A ANNUAL=INVEST/YEARS 

SET BOOKVALUE=%INVEST% 

ECHO YEAR ANNUAL DEPRECIATION BOOK VALUE 

FOR /L %%C IN (1, 1, %YEARS%) DO (
    SET /A BOOKVALUE=BOOKVALUE-ANNUAL 
    ECHO %%C  %ANNUAL%     %BOOKVALUE% 
) 

PAUSE 
:END 
:: Exit and return an errorcode of 0 
EXIT /B 0 

回答

1

嘗試啓用Delayed expansion

@echo off 
setlocal enabledelayedexpansion 
... 

然後用感嘆號內For

FOR /L %%C IN (1, 1, %YEARS%) DO (
SET /A BOOKVALUE=BOOKVALUE-ANNUAL 
ECHO %%C  !ANNUAL!     !BOOKVALUE! 
)