脚本运行时输出一定的字符串到文本文件,输出连续的数据

问题描述 投票:0回答:0

当我的代码运行时,它会启动一个命令提示符,并在 cmd 屏幕上显示连续的数据流,然后命令提示符上出现的所有内容都会输出到一个 txt 文件。所以我能够成功地记录所有输出,但我希望只输出出现在启动的命令提示符上的某个字符串,而不是出现在 cmd 上的连续数据流。

例子

myScript.bat 执行并启动命令提示符,开始在新行上显示新数据,我在下面写的数据不是我的实际数据,但格式相同。

1。执行脚本 2。命令提示符启动并立即开始显示数据

[2023-03-09 14:36:57], Hey bro
[2023-03-09 14:36:57], Hey sis
[2023-03-09 14:36:58], Hey cousin
[2023-03-09 14:36:58], Hey cousin
[2023-03-09 14:36:58], Hey sis
[2023-03-09 14:36:58], Hey bro
[2023-03-09 14:37:00], Hey bro
[2023-03-09 14:37:00], Hey sis
[2023-03-09 14:37:00], Hey cousin
[2023-03-09 14:37:00], Hey sis
[2023-03-09 14:37:00], Hey sis
...

3。启动的命令提示符上显示的所有数据都保存到文本文件中。 myScript_results.txt

[2023-03-09 14:36:57], Hey bro
[2023-03-09 14:36:57], Hey sis
[2023-03-09 14:36:58], Hey cousin
[2023-03-09 14:36:58], Hey cousin
[2023-03-09 14:36:58], Hey sis
[2023-03-09 14:36:58], Hey bro
[2023-03-09 14:37:00], Hey bro
[2023-03-09 14:37:00], Hey sis
[2023-03-09 14:37:00], Hey cousin
[2023-03-09 14:37:00], Hey sis
[2023-03-09 14:37:00], Hey sis

我想要什么 -> 我希望输出文本文件只保存它说“表哥”这个词的行并丢弃其余数据,这意味着 myScript_results.txt 将如下所示:

[2023-03-09 14:36:58], Hey cousin
[2023-03-09 14:36:58], Hey cousin
[2023-03-09 14:37:00], Hey cousin

我当前代码的片段

Set log=C:\folder\myScript_%date:~-4,4%%date:~-7,2%%date:~-10,2%_%time:~0,2%%time:~3,2%.log
    
ping -n 1 IP Address| find "TTL=" >nul

if errorlevel 1 (
    echo X is OFFLINE
    
) else (
    echo X is ONLINE  
    
    start C:\Windows\System32\telnet IPADDRESS PORTNUM -f %log%
    cscript C:\folder\telnet_keyboard_strokes.vbs   

)

我知道如何使用“查找”功能读取一个已经存在的txt文件并找到您想要的字符串,如下所示:

cd C:\folder\myScript
find "cousin" output_Cousin.txt
pause

但是,当我试图在实时生成的数据中找到一个字符串时,我不确定如何合并它,一旦我 telnet 进入,该字符串就会不断流式传输。

感谢您提前提供任何指导和示例!

batch-file substring
© www.soinside.com 2019 - 2024. All rights reserved.