我想知道我的腳本如何計算當前時間和午夜時間之間的秒數。批處理腳本在幾秒鐘內計算時間差異
進出口運行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