日期变量的主要危险是区域设置灵敏度.如果您有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的答案...如果真的那么难,也许可以使用PowerShell,然后执行类似于Powershell的获取日期:如何在变量中获取昨天22:00?
您可以在bat文件中调用PowerShell,如下所示:使用bat启动Powershell脚本
您最终会得到一个三线或四线的解决方案,而不是 Rob Van der Woude 编写的 100 个左右的解决方案(我会完美地添加)。
祝你好运...
| 归档时间: |
|
| 查看次数: |
79337 次 |
| 最近记录: |