找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 60585|回复: 21

[文本处理] 批处理如何获取字符列表出现次数最多的字符?

[复制链接]
发表于 2021-9-6 22:04:14 | 显示全部楼层 |阅读模式
  1. echo off
  2. for /f "delims=\ tokens=5" %%i in ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services"') do (
  3. for /f "delims=_ tokens=2" %%k in ("%%i") do (
  4. echo %%k
  5. ))
复制代码

4b59e
4b59e
4b59e
4b59e
4b59e
Rec
GPIO2
GPIO2

想要4b59e,明显4b59e最多
发表于 2021-9-6 22:07:56 | 显示全部楼层

  1. echo off
  2. for /f "delims=\ tokens=5" %%i in ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services"') do (
  3. for /f "delims=_ tokens=2" %%k in ("%%i") do (
  4. echo %%k
  5. set /a count_%%k+=1
  6. ))
  7. set count
复制代码
 楼主| 发表于 2021-9-6 22:10:39 | 显示全部楼层
回复 2# newswan


   不是想要统计数量,想直接输出最多的那个变量
发表于 2021-9-6 22:14:12 | 显示全部楼层
回复 3# hentai87


得到统计数量,就找到最大那个了
发表于 2021-9-6 22:17:09 | 显示全部楼层
本帖最后由 newswan 于 2021-9-6 22:19 编辑

  1. for /f "usebackq tokens=2-3 delims=_=" %%a (`set count_`) do (
  2.     if %%b GTR !count! (
  3.         set count=%%b
  4.         set name=%%a
  5.     )
  6. )
复制代码
有没有多个最大值
 楼主| 发表于 2021-9-6 22:41:17 | 显示全部楼层
回复 5# newswan


    运行后闪退
没有多个最大值
 楼主| 发表于 2021-9-6 22:42:10 | 显示全部楼层
回复 4# newswan


    最大的结果还得用在其他命令里,不是我想知道是什么值
发表于 2021-9-6 22:48:28 | 显示全部楼层
回复 7# hentai87

前面加上
  1. setlocal   ENABLEDELAYEDEXPANSION
复制代码
 楼主| 发表于 2021-9-6 22:51:06 | 显示全部楼层
回复 8# newswan


    还是闪退
 楼主| 发表于 2021-9-6 22:52:49 | 显示全部楼层
echo off
setlocal   ENABLEDELAYEDEXPANSION
for /f "usebackq tokens=2-3 delims=_=" %%a (`set count_`) do (
if %%b GTR !count! (
set count=%%b
set name=%%a
)
)
pause
 楼主| 发表于 2021-9-6 23:17:27 | 显示全部楼层
回复 5# newswan


    是不是不全,都没有运行REG QUERY,这段应该放哪里
 楼主| 发表于 2021-9-6 23:21:02 | 显示全部楼层
REG QUERY的输出
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WpnService
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WpnUserService_4b59e
。。。
发表于 2021-9-6 23:29:22 | 显示全部楼层
本帖最后由 newswan 于 2021-9-6 23:39 编辑

  1. echo off
  2. setlocal   ENABLEDELAYEDEXPANSION

  3. for /f "delims=\ tokens=5" %%i in ('REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services"') do (
  4.     for /f "delims=_ tokens=2" %%k in ("%%i") do (
  5.         set /a count_%%k+=1
  6.     )
  7. )

  8. set count=0
  9. for /f "usebackq tokens=2-3 delims=_=" %%a in (`set count_`) do (
  10.     echo %%a %%b
  11.     if %%b GTR !count! (
  12.         set count=%%b
  13.         set name=%%a
  14.     )
  15. )
  16. echo %name%
复制代码
 楼主| 发表于 2021-9-6 23:31:42 | 显示全部楼层
回复 13# newswan


    还是闪退
发表于 2021-9-6 23:40:42 | 显示全部楼层
少 了 in in in in in
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-21 00:41 , Processed in 0.035309 second(s), 16 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表