如何使用.bat文件从输出中删除一行?

时间:2014-02-26 04:06:17

标签: batch-file

我有一个实用程序(myexefile.exe),它输出如下信息列表:

Line1=[Information in line1]
Line2=[Information in line2]
Line3=[Information in line3]
Line4=[Information in line4]
, etc.

我使用.bat文件将此信息写入如下文本文件:

set myexefile="c:\myexefile.exe"
set outputfile="c:\outputfile.txt"
%myexefile% >>  %outputfile%

但是,我想为包含“Line3 =”的行写之外的所有行。

所以我想输出到outputfile.txt:

Line1=[Information in line1]
Line2=[Information in line2]
Line4=[Information in line4]
, etc.

我可以按原样创建文件,然后使用现有的示例来演示如何从文本文件中删除一行,但我宁愿首先跳过该行,而不是将其写入文本文件然后删除它。

有人可以帮我这个吗?

2 个答案:

答案 0 :(得分:2)

%myexefile% | find /v "Product ID">>  %outputfile%

应过滤掉包含产品ID

的任何行

答案 1 :(得分:0)

setLocal enableDelayedExpansion
set outputfile="c:\outputfile.txt"
for /f "delims=" %%a in ('c:\myexefile.exe') do (
    set out=%%a
    if "!out:~0,4!" NEQ "Line3" echo %%a>>%outputfile%
)

或者 -

set outputfile="c:\outputfile.txt"
for /f "delims=" %%a in ('c:\myexefile.exe') do for /f %%b "delims=:" in ("%%a") do if "%%b" NEQ "Line3" echo %%a>>%outputfile%