开发者

Batch file: store lines of command's output without writing to a file?

Windows XP

My batch file runs a command that has several li开发者_StackOverflownes of output. How can I count (and store in a variable) the lines of output without ever writing to the disk?


dir | find /v /c "zzzxxx"

gives a line count


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.


and while you are at it, you can also download GNU packages(coreutils) for windows and use the wc tool: eg

dir | wc -l
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜