2

视窗

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

4

3 回答 3

3
dir | find /v /c "zzzxxx"

给出行数

于 2010-01-24T08:34:03.110 回答
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用您的命令替换,您可以使用引号并指定参数。您将不得不转义其他一些字符-^和.| < >&

如果您不仅需要计算行数,还需要解析每一行,则可能必须将标记分隔符从_(如我在示例中使用的)更改为不会导致行拆分为多个标记的其他内容。

于 2010-01-22T17:38:39.133 回答
0

当您使用它时,您还可以下载适用于 Windows 的GNU 软件包(coreutils)并使用 wc 工具:例如

dir | wc -l
于 2010-01-23T00:06:39.830 回答