在为文件夹创建日期格式时出错

时间:2019-04-09 11:02:29

标签: batch-file

我有以下代码创建日期格式,该格式允许我创建前一天的文件夹。问题是,如果日期在1到9之间,则日期戳带有-1-04-2019而不是08-04-2019会产生错误。 %day%-%month%-%year%的回显语句正确于2019年9月4日。

SET day=%date:~0,2%
SET Month=%date:~3,2%
SET Year=%date:~6,4%
SET /A Yesterday=%day-1
echo %Yesterday%-%Month%-%Year%
echo %day%-%Month%-%Year%

结果=

-1-04-2019
09-04-2019

有没有一种方法可以将零加起来,这样我就可以在1到9之间的前一天加上零。

我尝试了If语句:-

IF "%date:~0,1%" == "0" SET day=0%date:~1,1%

IF "%date:~0,1%" == " " SET day=0%date:~1,1%

问候 迈克尔

1 个答案:

答案 0 :(得分:1)

如果您利用中的,则可以很容易地获取所需的字符串,而不必在昨天是上个月或上一年的情况下执行计算; (或可能说明leap年等)

@For /F %%A In ('PowerShell -NoP "(Get-Date).AddDays(-1).ToString('dd-MM-yyy')"') Do @MD "%%A"

或更简单:

@PowerShell -NoP "MD (Get-Date).AddDays(-1).ToString('dd-MM-yyy')">Nul