我想知道我的脚本如何计算当前时间和午夜时间之间的秒数。批处理脚本在几秒钟内计算时间差异
进出口运行W10和我的脚本需要超时-t X
其中,X(S)=午夜currentTime的
有反正我能做到这一点?
预先感谢您!
我想知道我的脚本如何计算当前时间和午夜时间之间的秒数。批处理脚本在几秒钟内计算时间差异
进出口运行W10和我的脚本需要超时-t X
其中,X(S)=午夜currentTime的
有反正我能做到这一点?
预先感谢您!
为了利用PowerShell的批处理文件,我建议:
For /F %%I In ('Powershell^
"[int](New-TimeSpan -End (Get-Date).AddDays(1).Date).TotalSeconds"'
) Do Timeout /T %%I
这不会是准确的。然而,由于越来越PowerShell的输出,执行超时命令之间的跨度。
%TIME%
将展开为HH:MM:SS.DD或HH:MM:SS,DD,其中HH =小时,MM =分钟,SS =秒,DD =小数秒。
我假设我们可以忽略小数秒DD。
的HH将24小时格式,并且可以具有一个前导空格或领先0
的MM和SS可以有一个前导0
SET/A治疗数字与主导0为八进制,这不是我们想要的。所以我们只需要任何空间转换成0,和前缀用1
每个值那么for /f "tokens=1-3 delims=:.," %%a in ("%time: =0%") do ...
将产生以下值:
1%%a = hours + 100
1%%b = minutes + 100
1%%c = seconds + 100
剩下的就是简单的数学
(24*60*60)-((((1%%a*60)+1%%b)*60)+1%%c)-((((100*60)+100)*60)+100)
simplifies to
86400 - (((1%%a*60+1%%b)*60+1%%c) - 366100)
simplifies to
452500-(1%%a*60+1%%b)*60-1%%c
所以完整的代码变成
for /f "tokens=1-3 delims=:.," %%a in (
"%time: =0%"
) do set /a "SecondsUntilMidnight=452500-(1%%a*60+1%%b)*60-1%%c"
timeout /t %SecondsUntilMidnight%
你已经提到'你的脚本'所以发布它,并给我们一个战斗通道根据现场程序进行回答。此外,由于时间等本地变化,您将不得不向我们提供您的特定日期和时间变量输出。 'ECHO = [%DATE%] [%TIME%]'。我们还需要确定您是否想知道午夜多久或午夜多长时间。 – Compo
dbenham写了一个不错的混合批处理文件,与日期和时间计算很好。 ('powershell“[int](new-timespan -end(get-time))中的/ f %%我可以在http://dostips.com/forum/viewtopic.php?f=3&t=4847&start=9999#p47680 – Squashman
date).addDays(1).date).totalseconds“')do set”secondsToMidnight = %% I“' – rojo