Hay Richie Lawrence's batch library que tiene todos esos scripts útiles e ingeniosos. El que necesita es DateToSec (que usa GetDate y GetTime).
Así es un guión simplificado, que emplea un poco 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
El resultado será devuelto en el primer parámetro pasado a GetUnixTime
, es decir %UNIX_TIME%
.
Por ejemplo:
1341791426 seconds have elapsed since 1970-01-01 00:00:00
espero que ayude!
posible duplicado de [lo que es el equivalente ventanas del comando "date +% s"] (http://stackoverflow.com/questions/11124572/ what-is-the-windows-equivalent-of-the-command-dates) – dbenham
@dbenham De hecho, un duplicado, pasé por alto tu solución. –
descargar un GNU date.exe (del archivo GnuWin32, MinGW, Cygwin) sería útil. –