我是批处理脚本的新手,所以如果这里有一个愚蠢的错误,请原谅我。 我一直在寻找这个答案已经有一段时间没有运气了。
我的目标: 从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=
答案 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
)应使用感叹号编写,那些不能继续使用百分比字符。