【发布时间】:2019-04-10 01:43:11
【问题描述】:
我有以下代码创建日期格式,允许我为前一天创建一个文件夹。问题是,如果日期介于 1 和 9 之间,则会产生错误,即日期戳是 -1-04-2019 而不是 08-04-2019。 %day%-%month%-%year% 的 echo 语句在 09-04-2019 是正确的。
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%
问候 迈克尔
【问题讨论】:
-
您在行中缺少 %:SET /A Yesterday=%day-1 应该变为 SET /A Yesterday=%day%-1
-
StackOverFlow 上有很多问题和答案可以回答您的问题。在您提出另一个问题之前,请考虑将来使用搜索功能。请拨打Tour。请阅读,How to ask a good question?。也请阅读How to create a Minimal, Complete, and Verifiable example
-
我完全同意壁球!无论如何,只是要指出:前导零让
set /A将数字视为八进制数字,因此使用08和09的计算无法工作,因为它们是无效的八进制数字。而且批处理脚本中没有日期/时间数据格式,因此使用这些值的计算总是一团糟;切换到或借用可以正确处理此类数据的语言(我想除了批处理之外几乎没有语言不能)...
标签: batch-file