这就是我想做的事情:
我想从当前日期获取最后4个日期,然后将它们存储在4个不同的变量中。然后将每个日期转换为YYYYMMDD格式。
所以%DATE%给了我06/04/2016 ..... %DATE%
-1 should give me 05/04/2016 stored in Variable say Date1........
-2 should give me 04/04/2016 stored in Variable say Date2........
-3 should give me 03/04/2016 stored in Variable say Date3........
-4 should give me 02/04/2016 stored in Variable say Date4........
然后我想将存储在每个变量中的值转换为YYYYMMDD
例如:
05/04/2016 to 20160405 ....
04/04/2016 to 20160404 ....
03/04/2016 to 20160403 ....
02/04/2016 to 20160402 ....
答案 0 :(得分:1)
在powershell的帮助下:
@echo off
for /l %%d in (0,1,4) do (
for /f "tokens=*" %%i in ('powershell get-date -date $(get-date^).adddays(-%%d^) -format yyyyMMdd') do set _Date%%d=%%i
)
set _date
解释(从TessellatingHeckler的评论中逐字复制 - 无法更好地制定它):
for / L是一个批处理文件循环,它对数字,1 2 3 4和每个进行计数 通过它的时间调用PowerShell脚本引擎与for / f命令 这是一个批处理文件的解决方法。 PowerShell命令获取 当前日期,添加-X天,然后得到结果日期, 并以您希望的方式格式化它并将其返回到批处理文件, 它返回一行文本,并在do部分中使用它 设置环境变量。 tokens = *告诉循环不要拆分 文本行,^是批量转义特殊字符 文件
for /l
的工作方式如下:for /l %%i in (<start>, <step>, <end>)
。在其他语言中,它会读取类似FOR i=<start> TO <end> STEP <step>
powershell命令汇总如下:
get-date
- 今天的约会。
get-date -date <some date>
获取<some date>
的日期(似乎很荒谬,但实际上意味着“接受字符串<some date>
并将其转换为有效日期”)。
现在将<some date>
替换为$(get-date).adddays(x)
- 这意味着“今天就行,并添加x
天”
最后一步是使用-format <formatstring>
您可以使用cmd
或更详细的powershell get-help get-date
从powershell Get-Help Get-Date -Online
阅读powershell的帮助:"id": "101",
"photo": {
"$ref": "materialphotos",
"$id": ObjectId("57041fc125e2433c200987ff")
},
"material_name": "Something",