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