我正在使用wget的DOS端口从API收集数据,以生成日志文件的数据(将在以后进行分析).除了当前时间之外,API提供了我需要的所有信息(它在数据流开始时提供时间,但在此之后不再提供时间).
API通常最初提供10行数据,然后每20-30秒提供一行.
我正在尝试为此输出添加时间戳并将其复制到日志文件中 - 我不介意时间戳与输出的其余部分或之前的行位于同一行.
我首先开始使用这个批处理文件:
addtimes.bat:
@echo off >nul
:start
set /p input="":
echo %time%
echo %input%
goto:start
Run Code Online (Sandbox Code Playgroud)
(称为"wget ..... | addtimes.bat> log.log")
然而,这些数据丢失了 - 许多数据线的开头都丢失了.
我在这里看了一下,意识到我应该使用for循环.
addtimes2.bat:
@echo off
cls
setlocal EnableDelayedExpansion
for /F "tokens=*" %%a in ('more') do (
echo !time! %%a )
)
Run Code Online (Sandbox Code Playgroud)
我尝试过使用和不启用延迟扩展.
我似乎无法使用不同的时间戳一次传递一行信息 - 一旦我关闭数据流,我的所有行都会得到相同的时间戳.
典型的输入数据形式如下:
[1,"219","265",14528,1359031137000,1359031137000]
[1,"6594","358",18188,1359031019000,1359031019000]
[1,"690","94",15920,1359031534000,1359031534000]
[1,"25164","102",2129,1359031457000,1359031457000]
[1,"3488","329",2109,1359030868000,1359030868000]
[1,"37247","6",11506,1359031223000,1359031223000]
Run Code Online (Sandbox Code Playgroud)
您可能会注意到数据中存在UTC时间,但它们不是当前时间.