我正在尝试在明年的批处理文件中设置一个变量,i。例如,如果当前年份是2016
,我希望变量设置为2017
。
我现在可以通过使用以下方式获取值:
SET /a sum=%date:~6%+1
我尝试将结果重定向到文件,如下所示:
SET /a sum=%date:~6%+1 >next_year.txt
如果我从命令提示符运行它,那么它工作正常。但是如果我在.bat
文件中有这个并从命令提示符运行该文件,则会创建next_year.txt
文件,但它没有值。
我确定我在这里错过了一些愚蠢的东西,但我会围成一圈。
答案 0 :(得分:0)
这是因为set /A
的设计(因此你无法改变它):
cmd
)上下文中,set /A
将(最后)结果输出到控制台窗口。例如,set /A X=1+2
将结果3
回显到控制台,set /A x=1+2, y=x-1
回显2
(顺便说一下,没有尾随换行符)。set /A
命令不输出任何内容。要获得set /A
命令行的结果,您需要在下一行显式回显它,如echo %X%
,参考前面提到的第一个例子。当然,您可以将其重定向到文件中:
> "\path\to\file.txt" echo %X%