Windows XP
My batch file runs a command that has several lines of output. How can I count (and store in a variable) the lines of output without ever writing to the disk?
Here's sample script that will count the lines in the output of the dir
command.
@echo off
setlocal enabledelayedexpansion
set lc=0
for /f "usebackq delims=_" %%i in (`dir`) do (
echo %%i
set /a lc=!lc! + 1
)
echo %lc%
endlocal
You can substitute dir
with your command and you can use quotes and specify parameters. You will have to escape some other characters though - ^
, |
<
>
and &
.
If you need to not only count the lines, but also parse each line, you might have to change the token delimiter from _
(as I used in the example) to something else that will not result in the line split in multiple tokens.