Windows XP
我的批处理文件运行一个包含多行输出的命令。如何在不写入磁盘的情况下计算(并存储在变量中)输出行?
答案 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