批处理文件:存储命令输出行而不写入文件?

时间:2010-01-22 17:21:21

标签: batch-file count lines

Windows XP

我的批处理文件运行一个包含多行输出的命令。如何在不写入磁盘的情况下计算(并存储在变量中)输出行?

3 个答案:

答案 0 :(得分:3)

dir | find /v /c "zzzxxx"

给出行数

答案 1 :(得分:2)

这是一个示例脚本,它将计算dir命令输出中的行。

@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

您可以使用命令替换dir,并且可以使用引号并指定参数。你必须逃避其他一些角色 - ^| < >&

如果您不仅需要对行进行计数,还需要解析每一行,您可能需要将令牌分隔符从_(我在示例中使用)更改为其他不会导致行分为多个标记。

答案 2 :(得分:0)

当你在这里时,你也可以下载GNU packages(coreutils) for windows并使用wc工具:例如

dir | wc -l