在批处理脚本

时间:2017-03-27 22:30:38

标签: loops batch-file increment

我是批处理脚本的新手,所以如果这里有一个愚蠢的错误,请原谅我。 我一直在寻找这个答案已经有一段时间没有运气了。

我的目标: 从1964年到1974年迭代10年,能够在我的for循环中引用“今年”和“明年”(目标是移动和重命名文件)。 我不能“明年”上班。

set /a start_year=1964
set end_year=1974
set num_between=1


for /L %%A in (%start_year%,%num_between%,%end_year%) do (
    set /a current_yr=%%A
    echo %current_yr%
    set /a "next_year=%current_yr%+1"


    echo next-year=%next_year%

)

pause

结果(结果的一个块,由于循环而重复):

filepath*\local-folder>(
set /a current_yr=1974
  echo
  set /a "next_year=+1"
  echo next-year=
)ECHO is on.
next-year=

1 个答案:

答案 0 :(得分:0)

@Echo Off
SetLocal EnableDelayedExpansion

Set "start_year=1964"
Set "end_year=1974"
Set "num_between=1"

For /L %%A In (%start_year%,%num_between%,%end_year%) Do (
    Set/A "current_yr=%%A", "next_year=%%A+1"
    Echo=%%current_yr%%=!current_yr!
    Echo=%%next_year%%=!next_year!
)

Timeout -1

一般规则是在代码块中创建/修改的变量(例如 If / Else For 应使用感叹号编写,那些不能继续使用百分比字符。