datetime - 批处理文件在 Windows 上减去小时当前时间

标签 datetime batch-file windows-7 date-manipulation

例如,我需要从 Windows 7 上的 .bat 文件中的当前时间减去 1 小时。

我是这样做的。

set day=%date:~0,2%
set month=%date:~-7,2%
set year=%date:~-4,4%
:: ———————————————————————–
set hour=%time:~0,2%

set /A hour= hour - 1

if %hour% lss 0 set hour=23
if %hour% lss 10 set hour=0%hour%

echo %year%-%month%-%day% %hour%:00

但问题是,前一天减去一个月前的结果是不一致的。例如,这个日期 2016-03-01 00:05 我得到 2016-03-01 23:05。我需要获取 2016-02-29 23:05

我找到了几个批处理脚本来减去一天,但没有小时或分钟。

最佳答案

它不完全是 Batch,但我发现有很多异常(exception)和特殊情况,不值得在 Batch 中重新编码所有内容,尤其是当它以前完成时。我喜欢从批处理文件中调用 Powershell,就像这样。

for /f "delims=" %%a in ('"powershell [DateTime]::Now.AddHours(-1).ToString('yyyy-MM-dd HH:mm')"') do echo %%a

输出将类似于:2016-10-18 02:05

关于datetime - 批处理文件在 Windows 上减去小时当前时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40120322/

相关文章:

javascript - Date 对象和 ISO 日期对象返回不同的日期

datetime - Golang - 结构 : time. 时间

python - Pandas 选择多个日期时间之间的数据框行

batch-file - 使用批处理将文件复制到一个文件中

windows-7 - 无法在Windows 7上安装PEAR,结构/图形错误

windows-7 - Electron-Angular9应用程序在Windows 7中显示空白屏幕,但在Windows 8上运行正常

python - '不再支持将列表喜欢传递给带有任何缺失标签的 .loc 或 [],请参阅

java - 如何将文件夹变成jar文件

windows - 是否有用于将用户添加到高级用户组的批处理脚本?

java - Win7 AD 环境中的 Tomcat NTLM 用户名查找 - samba 还是 waffle?