批处理解析3个变量并压缩成1个字符串

时间:2017-08-10 21:36:42

标签: batch-file cmd findstr

我有大约1k日志每天晚上拉和解析。

我们的想法是使用4个关键字中的1个在所有日志上运行findstr。例如:

FINDSTR /s /i /c:"keyword" *.* >> Findstrresult.txt

一旦这样,我就能看到所有关键字"关键字"在其中,可以进一步解析。

这就是我被困的地方。我可以自己拉出我想要的每个变量。例如:

FOR /F "tokens=3 delims= " %%a in (Findstrresult.txt) do (
FOR /F %%b in ("%%a") do Echo %%~b >> Number.txt
)

这会产生1k数字列表。

不同的令牌/ delim会产生1k名称的列表。

不同的令牌/ delim会产生1k次的列表。

每个都在自己的文本文件中。

我想做的是将它们一次拉出来,然后将它们一个接一个地写在一个字符串中,如下所示:

号码,名称,时间

我真是太近了。我只是需要一些建议。

谢谢。

1 个答案:

答案 0 :(得分:0)

(
FOR /F "delims= " %%a in (Findstrresult.txt) do (
 FOR /F "tokens=3 delims= " %%b in ("%%a") do ( 
  FOR /F "tokens,delims for name" %%n in ("%%a") do (
   FOR /F "tokens,delims for time" %%t in ("%%a") do (
    echo %%b,%%n,%%t
   )
  )
 )
)
)>combinedresult.txt

将您的文件一行一行读入%%a,然后以三种方式解析%%a。嵌套for /f会使每个元变量保持在范围内。

将整个例程括在括号中,可以收集echo并重定向到新文件。如果愿意,可以使用>>将其附加到现有文件中。