有没有办法使用Windows命令获取纪元时间?如果没有,可以修改date
和time
命令输出吗?
例如,Windows中的date
给出了/等的日期。我想得到一个没有特殊字符的输出,例如/:
答案 0 :(得分:4)
通过我自己的在线研究,我无法直接通过批处理文件找到这样做的方法。但是,我能够找到适合我的解决方案:
在toEpoch.vbs:
WScript.Echo DateDiff("s", "01/01/1970 00:00:00", Now())
然后从我的批处理脚本调用如下:
for /f "delims=" %%x in ('cscript /nologo toEpoch.vbs') do set epoch=%%x
将%epoch%变量设置为当前的unix时间戳,我可以根据需要使用它。
希望这有帮助。
答案 1 :(得分:4)
使用此命令显示历元后的秒数。
(Cmd命令)
powershell -command "(New-TimeSpan -Start (Get-Date "01/01/1970") -End (Get-Date)).TotalSeconds"
答案 2 :(得分:2)
试试这个
for /f "tokens=2,3,4 delims=/ " %f in ('date /t') do @echo %h%g%f
如果在批处理文件
中,请记住加倍%chars@echo off
setlocal
for /f "tokens=2,3,4 delims=/ " %%f in ('date /t') do set d=%%h%%g%%f
for /f "tokens=1,2 delims=: " %%f in ('time /t') do set t=%%f%%g
echo datetime is : %d%%t: =0%
endlocal
我得到了这个输出:
c:\development>xx.bat
datetime is : 201008111108
[编辑Kurt Pfeifle关于时间扩展空间的评论]
答案 3 :(得分:1)
没有可靠的方法在批处理文件中获取日期而无需借助外部工具或其他语言(如VBScript)。
通过VBScript,您可以使用Date
和Time
功能访问当前日期和时间。 FormatDateTime
将为您提供一种文化中立的日期/时间格式,然后您可以对其进行解析。
您可以在脚本中使用WScript.Echo
从VBScript获取结果,并从批处理中调用它:
for /f "delims=" %%x in ('cscript /nologo foo.vbs') do set result=%%x
然后变量%result%
包含VBScript在第一行中输出的内容。
答案 4 :(得分:1)
CoreUtils for Windows项目http://gnuwin32.sourceforge.net/packages/coreutils.htm有一个date
命令,它提供与Linux相同的选项。
下载该软件,并将date.exe
重命名为gnudate.exe
,以避免与Dos date
命令发生冲突。你需要文件libintl-2.dll
和libiconv-2.dll
运行命令。
对于所有可用选项类型:
gnudate --help
例如gnudate "+%a %e %b %Y %H:%M:%S"
将给出:
Sun 10 apr 2016 21:52:35
命令gnudate +%s
将提供自纪元以来的秒数:
1460325461
下一个Dos批处理文件显示了gnudate的用法。您需要将gnudate %
参数中的+%s
加倍。
rem set the variable s to the epoch seconds.
for /f "tokens=1 delims=" %%A in ('gnudate +%%s') do set s=%%A
rem use `%s%` for the time offset parameter of the ffmpeg drawtext filter.
ffmpeg -y -f lavfi -i testsrc=duration=15.3:size=cif:r=10 -vf "drawtext=fontfile=arial.ttf:text=%%{pts\\\:localtime\\\:%s%\\\:%%a %%d %%b %%Y %%H\\\\\\:%%M\\\\\\:%%S}:fontsize=10:x=w-text_w:y=h-lh:box=1" a.mp4
ffplay a.mp4
此批处理文件在Linux下的虚拟机中使用Windows 8进行了测试。
要运行它,您需要安装ffmpeg
您可以从https://ffmpeg.zeranoe.com/builds/下载Static build
。
答案 5 :(得分:0)
要获得“yyyymmdd”格式的时间,请尝试以下方法:
for /F "tokens=2-4 delims=/ " %i in ('date /t') do echo %k%i%j
更多信息: