Trevor
Trevor

Reputation: 69

How to remove a line from the output with a .bat file?

I have a utility (myexefile.exe) which outputs a list of information like this:

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

I use a .bat file to write this information to a text file like this:

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

However, I would like to write all of the lines except for the line containing "Line3=".

So I want the output to the outputfile.txt to be:

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

I could probably create the file as it is and then use an existing sample which shows how to remove a line from a text file, but I would rather skip the line in the first place, rather than writing it to a text file and then removing it.

Can someone help me with this?

Upvotes: 0

Views: 605

Answers (2)

Magoo
Magoo

Reputation: 80211

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

should filter out any line containing Product ID

Upvotes: 2

unclemeat
unclemeat

Reputation: 5207

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%
)

or alternatively -

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%

Upvotes: 0

Related Questions