Несмотря на то, что это не ответ на ваш вопрос, я включил его здесь, чтобы вы могли проверить, есть ли какая-то разница, (так как я не смог правильно отформатировать его в области комментариев) :
@Echo Off
Echo Start time = %TIME% %DATE%
( For /L %%G In (1,1,70) Do (
SetLocal EnableDelayedExpansion
Echo Logged time = !TIME! !DATE!
EndLocal
"%__AppDir__%timeout.exe" /T 60 /NoBreak>NUL
)
)>"logtime.txt"
Echo End time = %TIME% %DATE%
"%__AppDir__%timeout.exe" /T -1
Exit /B
Чтобы попытаться подтвердить, связана ли, как я уже говорил в моих предыдущих комментариях, ваша проблема не с программированием, а с чем-то за его пределами. Я решил предоставить измененную версию моего скрипта,
(без изменения его структуры) , чтобы исключить циклическое использование переменной
%TIME%
. Если он работает как задумано, проблема связана с вашей системой или с перезаписью системной переменной
%TIME%
.
Попробуйте этот пакетный файл :
<!-- :
@Echo Off
Echo Start time = %TIME% %DATE%
( For /L %%G In (1, 1, 70) Do (
"%__AppDir__%cscript.exe" //NoLogo "%~f0?.wsf"
"%__AppDir__%timeout.exe" /T 60 /NoBreak > NUL
)
) > "logtime.txt"
Echo End time = %TIME% %DATE%
"%__AppDir__%timeout.exe" -1
Exit /B
-->
<Job><Script Language="VBScript">
Set colItems = GetObject("winmgmts:\\.\root\cimv2").ExecQuery( _
"Select LocalDateTime From Win32_OperatingSystem")
For Each objItem In colItems
dtmLocal = objItem.LocalDateTime
dtMM = Mid(dtmLocal, 5, 2)
dtDD = Mid(dtmLocal, 7, 2)
dtYYYY = Left(dtmLocal, 4)
tmHH = Mid(dtmLocal, 9, 2)
tmMM = Mid(dtmLocal,11, 2)
tmSS = Mid(dtmLocal,13, 2)
tmFF = Right(Round((Mid(dtmLocal,14,5) *100),0),2)
Next
dtS = dtDD & "/" & dtMM & "/" & dtYYYY
tmS = tmHH & ":" & tmMM & ":" & tmSS & "." & tmFF
Wscript.Echo "Logged time = " & tmS & " " & dtS
</Script></Job>
Он использует Windows Узел сценариев, чтобы получить не зависящую от локали строку даты и времени, бессмысленно форматирует ее (в более точный формат, не слишком отличающийся от того, который вы предоставили) и печатает ее в файл.
Я оставил время начала и окончания, используя переменную %TIME%
, так как она должна дать вам визуальную индикацию любой существенной разницы между ней и первым и последним выводом текстового файла.