我正在运行命令,
Find /C /I "pass" "log.txt" > output.txt
输出得到,
---------- LOG.TXT: 2
得到这个输出是因为文件中出现了两次单词“pass” log.txt
。
预期产出,
2
我不想将文件名包含在输出文件中。我只需要计数。我记得有个叫做 /NoLogo 的命令可以使用,但是不知道确切的命令或在哪里使用它。请帮帮我。
答案1
两种在输出中省略文件名的方法find
命令在获取行匹配数时无需循环和使用分隔符等。。。
1. 通过将文件重定向到 find 命令,使用以下方法搜索其行命令重定向例如command < filename
Find /C /I "pass" < output.txt
2. 使用类型命令针对文件,然后将其通过管道传递给find
命令以使用该方法命令重定向。
type output.txt | Find /C /I "pass"
示例输出(两行匹配)
2
支持资源
-
command < filename Type a text file and pass the text to command commandA | commandB Pipe the output from commandA into commandB
答案2
可能是这样的:
@echo off
for /f "tokens=2 Delims=:" %%a in ('Find /C /I "pass" "log.txt"') do for /f %%b in ("%%a") do echo %%b>output.txt