我正在使用 wget 的 DOS 端口从 API 收集数据,以生成日志文件的数据(稍后将对其进行分析)。API 提供了我需要的所有信息,除了当前时间(它提供了数据流开始时的时间,但之后不再提供)。
API 最初通常提供 10 行数据,然后每 20-30 秒提供一行。
我正在尝试对该输出添加时间戳并将其复制到日志文件中 - 我不介意时间戳与输出的其余部分或之前的行位于同一行。
我首先从这个批处理文件开始:
addtimes.bat:
@echo off >nul
:start
set /p input="":
echo %time%
echo %input%
goto:start
(称为“wget..... | addtimes.bat > log.log”)
然而,这种丢弃的数据会出现 - 许多数据行的开头都丢失了。
我看过这里并意识到我应该使用 for 循环。
addtimes2.bat:
@echo off
cls
setlocal EnableDelayedExpansion
for /F "tokens=*" %%a in ('more') do (
echo !time! %%a )
)
我尝试过启用延迟扩展和不启用延迟扩展。
我似乎无法使用不同的时间戳一次传递一行信息 - 一旦我关闭数据流,我所有的行都会获得相同的时间戳。
典型的输入数据形式如下:
[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]
您可能会注意到数据中有 UTC 时间,但它们不是当前时间。