[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
本帖最后由 aloha20200628 于 2023-11-12 13:01 编辑


纯P求解字符重复数量的方案,还是采用变量名字典最为简捷,但有原生限制,例如不区分变量名字母大小写,例如文件每行字节长度受限8K。
针对一楼示例,每行均为大写字母且用系统默认分隔符,求其各字符的重复数量,代码如下》
  1. @echo off &setlocal enabledelayedexpansion
  2. for /f "delims=" %%s in (a.txt) do for %%c in (%%s) do if defined 【%%c】 (set/a "【%%c】+=1") else (set "【%%c】=1")
  3. set 【
  4. endlocal &exit/b
复制代码
类似变量名字典的纯P算法,再用jscript+cmd混编一个(存为*.cmd批处理脚本文件运行),可区分被统计字符的字母大小写。
  1. @set @v=1 /*
  2. @echo off
  3. cscript /e:jscript "%~f0" "a.txt" |sort
  4. pause &exit/b
  5. */
  6. var fso=new ActiveXObject('scripting.filesystemobject');
  7. var fr=fso.opentextfile(WSH.arguments(0)), lines=fr.readall().split('\r\n'); fr.close();
  8. var ln=lines.length, dc={};
  9. for (var k=0; k<ln; ++k) {
  10. var a=lines[k].split(''), an=a.length;
  11. for (var n=0; n<an; ++n) if (dc[a[n]]==undefined) dc[a[n]]=1; else dc[a[n]]++;
  12. }
  13. for (var key in dc) WSH.echo('字符: ' + key + ' 重复次数=' + dc[key]);
  14. WSH.quit();
复制代码
2

评分人数

TOP

返回列表