小编Dee*_*old的帖子

我正在尝试使用Windows批处理文件将数据从stdin(到日志文件)中加时间戳

我正在使用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时间,但它们不是当前时间.

windows pipe batch-file

6
推荐指数
1
解决办法
696
查看次数

标签 统计

batch-file ×1

pipe ×1

windows ×1