%TIME%
は、HH:MM:SS.DDまたはHH:MM:SS、DD(HH =時間、MM =分、SS =秒、DD =分数秒)に展開されます。
私は分数秒DDを無視できると仮定しています。
HHは24時間形式になり、先頭のスペースを有していてもよく、又は主要0
MMとSSが先頭とリーディング0
SET/A扱う番号を有していてもよいです0を8進数として返します。これは私たちが望むものではありません。
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 ...
には、次の値が得られます0に任意のスペースを変換し、1
でそれぞれの値の前に付ける必要がありますだから、完全なコードは、それを投稿し、私達に戦いちゃんを与えるあなたが「スクリプト」を言及した
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は日付と時刻の計算に優れた素晴らしいハイブリッドバッチファイルを作成しました。/f %% I for( 'powershell' [int](new-timespan -end(get-timepan-end))のためのhttp://www.dostips.com/forum/viewtopic.php?f=3&t=4847&start=9999#p47680 – Squashman
'日付).addDays(1).date).totalseconds "')を設定する" secondsToMidnight = %% I " – rojo