gpt4 book ai didi

windows - 使用CMD查找和计数发生次数?

转载 作者:行者123 更新时间:2023-12-03 11:09:30 25 4
gpt4 key购买 nike

简化:

长命令会产生以下事件:

echo 2 | find /C "2" //output "1"

这是因为“2”仅出现一次(每行),因此输出为1。

但是现在我只想在 值大于1的时才使用echo success。(否则抛出错误)

像这样的东西:
echo 2 | find /C "2" | check if val >1 && echo "success" ELSE throw
问题:

我设法做了左边的部分。但是,如何创建正确的部分?

最佳答案

使用conditional executing

如果只想检查,如果一个字符串至少出现一次,则不需要/c:

echo 2|find "2" >nul && echo success || echo fail

对于其他数字(例如“多个”),您需要计算 /c并使用 for /f循环捕获输出:
@echo off
setlocal
for /f %%a in ('type "%~f0"^|find /c "e"') do set count=%%a
echo %count%
if %count% gtr 1 (
echo more than one
) else (
echo one or less
)

对于演示,我搜索批处理文件本身,并对包含(至少一个) e的行进行计数。 for /f循环用于将命令的输出捕获到变量中,然后可以将其与另一个值进行比较。

仅出于学术原因,没有 for循环:
type test.txt|find /c "2"|findstr /xv "0 1" >nul && echo more than one

这在您的特殊情况下有效,但是 for循环更通用。

(我知道,您知道这一点,但需要向以后的读者说明: find /c计算包含搜索字符串(至少一次)而不是全部出现的行)

关于windows - 使用CMD查找和计数发生次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59443302/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com