2014-06-16 2 views
0

그래서 저는 수업 중 하나에 대한 최종 프로젝트를 진행하고 있습니다. 목표는 기본적으로 사용자가 초기 투자를 입력하게하고 값이 감가 상각되는 연도 수를 입력하는 것입니다. 그것은 투자로 결정된 상수 값을 연수로 나눈 값으로 하락합니다.FOR 루프 변수 산술 - 일괄 스크립팅

for 루프에서는 'bookvalue'에서 'annual'을 빼고 매년 새로운 bookvalue를 출력해야합니다 ... 수학 자체가 올바르게 작동합니다 (저는 믿습니까?) my for 루프는 그들이해야하는 것이지만 for 루프 내부의 echo 문을 사용하면 출력하기 위해 필요한 내용을 얻을 수 없습니다 (장부 값은 루프 내부에서 변경되지 않습니다).

어디로 갈 지 잘 모르겠지만 Google은 아직 나에게 아직 잘 해주지 않았습니다. 주어진 어떤 도움을 주셔서 감사합니다!

@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! 
)