batch-file - 计数频率字符串重复批处理文件
问题描述
源文件,A.txt
7895537000011
7895537000028
7895537000035
7895537000042
7895537000059
7895537000066
7895537000011
7895537000011
7895537000028
7895537000028
7895537000028
7895537000059
7895537000059
存档目的地,B.txt
(我需要一个给我这个结果的批次)
7895537000011,3
7895537000028,4
7895537000035,1
7895537000042,1
7895537000059,3
7895537000066,1
setLocal EnableDelayedExpansion
for /f "tokens=* delims= " %%a in (Inventario_%loja%_%dia%-%mes%-%ano%_%hour%h%min%m%secs%s.inv) do (
echo %%a,1 >>C:\Inventario\Inventario_%loja%_%dia%-%mes%-%ano%_%hour%h%min%m%secs%s\Inventario_%loja%_%dia%-%mes%-%ano%_%hour%h%min%m%secs%s.log
)
我尝试编辑上面的脚本,但效果不佳,我不知道从哪里开始。
解决方案
- 清除环境变量
- 使用 a 读取文件
for /f
并将递增计数存储在 var 中_[number]
- 循环遍历变量
_[number]
和输出计数。
:: Q:\Test\2018\07\12\SO_51312947.cmd
@Echo off
Set "FileIn=SO_51312947_a.txt"
Set "FileOut=SO_51312947_b.txt"
:: clear Env vars _[]
For /f "delims==" %%A in ('set _[ 2^>Nul') Do set "%%A="
:: read file, count entries
For /f "usebackq" %%A in ("%FileIn%") Do Set /A "_[%%A]+=1"
:: output environment vars
( For /f "Tokens=1-3delims=[]=" %%A in ('Set _[') do Echo %%B,%%C
) > "%FileOut%"
Type "%FileOut%"
样本输出:
> SO_51312947.cmd
7895537000011,3
7895537000028,4
7895537000035,1
7895537000042,1
7895537000059,3
7895537000066,1
推荐阅读
- javascript - 按类型过滤数组对象并将键值与对象进行比较
- java - karaf 控制台未在 opendaylight 启动原型中启动
- kubernetes - 是否可以在 kubernetes 中运行多个嵌套的 kubernetes 集群(k-in-k)
- python-3.x - 从元组组合对列表中挑选,使得每个元组元素至少出现两次
- php - 如何从 codeIgniter 的打印页面中删除搜索框和分页?
- excel - 使用 VBA 从 DIV 中检索数据
- reactjs - 如何增加 react-native Slider 组件的高度?
- java - Java 中的 Creator 是什么以及如何将其转换为 C#
- javascript - react native中使用HOC时,传一个TextInput,这个TextInput不能聚焦
- html - 更改此 img 正方形并在卡内响应