直接贴最终代码
call :GetUnixTime _CUR_TIME
echo timestamp: %_CUR_TIME%
goto :EOF
:GetUnixTime
setlocal enableextensions
for /f %%x in ('wmic path win32_utctime get /format:list ^<nul ^| 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
del /s/q TempWmicBatchFile.bat >nul 2>&1
endlocal & set "%1=%ut%" & goto :EOF
JJYY:
- 批处理真是渣的不可思议, 不要妄想用
%DATE% %TIME%
之类的方式来获取, 这些和当前系统的语言区域有关 - 请特别注意那个
^<nul
, 不加这个, 在某些情况下 wmic 命令会挂起,
具体会挂起的条件不确定, 感觉是从其他进程调起 cmd.exe 再执行批处理的情况下就会出现 - 还有那个奇葩的
TempWmicBatchFile.bat
文件, 股沟了一大圈实在不知道要怎么禁止丫生成,
干脆再多个恶心的命令来删掉删掉好了
转载请注明来自: http://zsaber.com/blog/p/116
既然都来了, 有啥想法顺便留个言呗? (无奈小广告太多, 需审核, 见谅)