如何将批处理脚本结果中的某些行输出到文件

时间:2018-02-02 16:40:47

标签: batch-file scripting

我想只将命令结果中的某些行输出到另一个文件中 这是我的剧本

@echo off
del "C:\Users\admin\Desktop\script1results.txt"

cd C:\Users\ndujakov\DIG
for /f %%a in (C:\Users\admin\Desktop\script1inputs.txt) do (
dig %%a >> C:\Users\admin\Desktop\script1results.txt
) 

以下是结果以及我想要具体输出的内容

; <<>> DiG 9.10.6-P1 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6710
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     248 IN  A   172.217.160.206    <---This one

;; Query time: 1 msec                          <---This one
;; SERVER: 10.231.0.106#53(10.231.0.106)
;; WHEN: Fri Feb 02 08:25:55 Pacific Standard Time 2018
;; MSG SIZE  rcvd: 55

1 个答案:

答案 0 :(得分:1)

您可以开始使用此批处理文件来过滤结果:

@echo off
set "Inputfile=result.txt"
set "TmpFile=%Tmp%\%random%.txt"
set "OutPutFile=FilterResult.txt"
(FindStr /IR /C:"[0-9].[0-9].[0-9].[0-9]" /C:"msec" "%inputfile%")>"%TmpFile%"
(Findstr /IV "server" "%TmpFile%")>"%OutPutFile%"
Start "" "%OutPutFile%" & del "%TmpFile%"

进一步阅读