String 如何显示批处理文件中特定字符串之后出现的字符串?

String 如何显示批处理文件中特定字符串之后出现的字符串?,string,batch-file,findstr,String,Batch File,Findstr,我需要创建一个批处理文件,该文件将显示在某个日志文件中特定字符串之后打印的字符串。 例如:我有一个日志文件,其中一行以字符串“computed number:XX”结尾。我想创建一个批处理文件,该文件将转到该日志,找到该字符串,并在屏幕上只打印XX部分(XX是不时更改的数字)。有什么好办法吗? 非常感谢您的帮助,提前谢谢 字符串的格式是在您感兴趣的部分之前和之后出现的格式,因为它可以影响行的解析方式 这段代码很健壮,如果数字确实在字符串的末尾,它将在字符串的末尾打印数字 它使用名为repl.ba

我需要创建一个批处理文件,该文件将显示在某个日志文件中特定字符串之后打印的字符串。 例如:我有一个日志文件,其中一行以字符串“computed number:XX”结尾。我想创建一个批处理文件,该文件将转到该日志,找到该字符串,并在屏幕上只打印XX部分(XX是不时更改的数字)。有什么好办法吗?
非常感谢您的帮助,提前谢谢

字符串的格式是在您感兴趣的部分之前和之后出现的格式,因为它可以影响行的解析方式

这段代码很健壮,如果数字确实在字符串的末尾,它将在字符串的末尾打印数字

它使用名为
repl.bat的助手批处理文件
-下载自:

repl.bat
放在与批处理文件相同的文件夹中,或放在路径上的文件夹中

@echo off
type "file.log" | repl ".*Calculated number: (.*)" "$1" a
@ECHO关闭
SETLOCAL
对于/f“delims=”%(q23040271.txt)中的%%a,请执行以下操作(
回显“%%a”|查找”计算数:“>NUL 2>NUL
如果不是错误级别1,则设置“行=%%a”&找到GOTO
)
未找到回显目标&转到:eof
:找到
回显%行:~-2%
后藤:EOF
我使用了一个名为
q23040271.txt
的文件,其中包含垃圾文本和测试样本数据

这在很大程度上取决于这样一种假设,即第一次出现的
计算数:
将是所需的ite,它将位于行尾-未检查它是否实际位于行尾

替换

 ECHO "%%a"|FIND "Calculated number: " >NUL 2>nul

将执行行尾检查(理论上-我没有检查过)-注意三个连续点

如果有数百万行,这将非常缓慢,除非目标字符串在文件的早期


您提供的信息越多,设计的解决方案就越好。

这在很大程度上取决于字符串的格式,如果在
:XX
后面有任何内容,那么
XX
中可以有多少个数字,您所说的字符串格式是什么意思?没有任何结果:在日志中的XX之后开始一个新行。它可以是从0到1000万的任何数字。
ECHO%行:~-2%
的对比可以是从0到1000万的任何数字。
最好是取最后十个或十二个字符,并使用
来获得数字。(如果可以确定,行中没有更多的
,会更容易些)
 ECHO "%%a"|FINDSTR /e /R /c:"Calculated number: ..." >NUL 2>nul