FOR循环变量算法 - 批量脚本

时间:2014-06-16 14:06:41

标签: batch-file for-loop integer-arithmetic

所以我正在为我的一个班级的最终项目工作,目标基本上是让用户输入初始投资,以及价值折旧的年数......它贬值了恒定值,由投资除以年数确定。

在for循环中,它应该减去'年度'来自' bookvalue'并打印出每年的新书价值...数学本身是否正常工作(我相信?)因为如果我回显我的for循环之外的值它们应该是什么,但是在for循环中的echo语句我不知道#39;得到我需要输出的东西(书值不会在循环中改变)。

不确定该去哪里,谷歌还没有完成我的工作。感谢您提供的任何帮助!

@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 个答案:

答案 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!
)