如何获取并显示昨天的日期?

nok*_*eat 5 batch-file

我正在使用date命令来处理批处理脚本.
我想知道如何使用命令日期来获取昨天的日期.

Chr*_*ood 9

日期变量的主要危险是区域设置灵敏度.如果您有PowerShell可用(这些日子甚至在大公司中更常见),那么您可以使用PowerShell进行格式化并将其包装在批处理FOR语句中.

以下PowerShell行将为您计算数据并为您设置日期格式: -

PowerShell $date = Get-Date; $date=$date.AddDays(-1); $date.ToString('yyyy-MM-dd')
Run Code Online (Sandbox Code Playgroud)

然后,您可以通过FOR执行此操作以将其转换为批处理文件变量(记住使用hat ^符号转义一大堆字符,并使用反引号来避免嵌入的引号): -

for /f "usebackq" %%i in (`PowerShell $date ^= Get-Date^; $date ^= $date.AddDays^(-1^)^; $date.ToString^('yyyy-MM-dd'^)`) do set YESTERDAY=%%i echo %YESTERDAY%
Run Code Online (Sandbox Code Playgroud)

我确信拥有出色的PowerShell和Batch编程技能的人可以减少PowerShell命令和/或转义字符的数量,使其更具可读性/可维护性.


JRL*_*JRL 5

每当您听到批处理时,请想想Rob Van der Woude。无论如何,这是昨天


Red*_*dog 4

看看@JRL的答案...如果真的那么难,也许可以使用PowerShell,然后执行类似于Powershell的获取日期:如何在变量中获取昨天22:00?

您可以在bat文件中调用PowerShell,如下所示:使用bat启动Powershell脚本

您最终会得到一个三线或四线的解决方案,而不是 Rob Van der Woude 编写的 100 个左右的解决方案(我会完美地添加)。

祝你好运...