批处理文件 – 批次:时间戳到UNIX时间

前端之家收集整理的这篇文章主要介绍了批处理文件 – 批次:时间戳到UNIX时间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
对于我所知道的,Batch没有给出UNIX时间的命令.我找到的最接近的是%time%,它只显示时间戳.

在Batch中是否有命令或一组命令可以获得UNIX时间?

Richie Lawrence’s batch library有所有这些漂亮的方便的脚本.您需要的是 DateToSec(使用 GetDateGetTime).

这是一个简化的脚本,它使用了一点点WMI

@echo off
setlocal
call :GetUnixTime UNIX_TIME
echo %UNIX_TIME% seconds have elapsed since 1970-01-01 00:00:00
goto :EOF

:GetUnixTime
setlocal enableextensions
for /f %%x in ('wmic path win32_utctime get /format:list ^| findstr "="') do (
    set %%x)
set /a z=(14-100%Month%%%100)/12,y=10000%Year%%%10000-z
set /a ut=y*365+y/4-y/100+y/400+(153*(100%Month%%%100+12*z-3)+2)/5+Day-719469
set /a ut=ut*86400+100%Hour%%%100*3600+100%Minute%%%100*60+100%Second%%%100
endlocal & set "%1=%ut%" & goto :EOF

结果将返回到传递给GetUnixTime的第一个参数,即%UNIX_TIME%.
例如:

1341791426 seconds have elapsed since 1970-01-01 00:00:00

希望有帮助!

原文链接:https://www.f2er.com/bash/383728.html

猜你在找的Bash相关文章