每天我都会在这个位置收到一个文件:
C:\Users\Admin\Desktop\LogTest\GetFile\
我必须搜索包含"错误"的字符串。在该文件中,将该文件中找到的所有错误消息复制到该位置的另一个文件(例如result.txt)。这就是我想要的。我试过这样 - 使用下面的命令创建文件,批处理命令继续运行但在result.txt中没有输出。
(注意:我尽力格式化代码以使其可读,但有很多猜测,因为原始文件根本没有格式(甚至不是换行符)[Stephan])
echo off
for /f "tokens=*" %%A in (C:\Users\Admin\Desktop\LogTest\GetFile\btilog.txt) do (
echo %%A\%folder%
grep "ERROR" -a5 -b2 %path2% >> Result_%file1%.txt
if %errorlevel%==0 (
echo Values Found! logged files into Result_%file2%.txt
) else (
echo No matches found in Result_%file2%.txt
)
pause
)
我必须捕获的日志文件示例:在上面的代码中,我刚刚接受了2行和仅仅用于测试的5行。但我希望消息只包含错误。
(注意:不确定,这应该是怎样的,因为原来[Stephan]没有形成):
><ns3:Error.Code>RBR.GEN.GEN.NOTOK</ns3:Error.Code><ns3:Severity.Code>Information</ns3:Severity.Code><
@ user3259712:请更正我猜错的地方。也许您还应该解释一下,%folder%,%path2%,%file1%和%file2%来自哪里。
答案 0 :(得分:1)
答案 1 :(得分:0)
将输出发送到文件是唯一的问题吗?
find "] ERROR" Test1*.log >errors.txt
使用>
创建(或覆盖)文件,使用>>
追加(或创建,如果不存在)文件。