You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写批处理文件汇总txt内同名游戏物品的数量总和

需求可行性结论

这个批处理统计需求完全可以实现,纯Windows原生批处理能力就能覆盖数百种物品的统计场景,不需要安装任何第三方工具。

核心实现逻辑
  • 逐行遍历原始物品记录文件,识别两类行格式:一类是[数量]x [物品名].的带明确数量的记录,另一类是直接写[物品名].的单物品记录(这类记录默认单条对应数量为1)
  • 逐行拆分出当前记录的物品名称、对应数量,以物品名称为唯一标识对数量做累加
  • 所有记录遍历完成后,按照[总数量]x [物品名].的格式输出汇总结果,支持直接写入结果文件。
可直接运行的批处理代码
@echo off
setlocal enabledelayedexpansion

:: 配置文件路径,可根据自己的实际文件名修改
set "INPUT=game_items.txt"
set "OUTPUT=item_count_result.txt"

:: 清空上一次运行残留的统计变量
for /f "delims==" %%v in ('set count_ 2^>nul') do set "%%v="

:: 逐行处理原始记录
for /f "usebackq delims=" %%line in ("%INPUT%") do (
    set "raw=%%line"
    :: 移除行尾的句号
    set "raw=!raw:~0,-1!"
    set "num=1"
    set "item_name=!raw!"

    :: 判断当前行是否带数量前缀
    echo !raw! | findstr /r /c:"^[0-9][0-9]*x " >nul
    if !errorlevel! equ 0 (
        :: 拆分出数量和物品名
        for /f "tokens=1* delims=x " %%a in ("!raw!") do (
            set "num=%%a"
            set "item_name=%%b"
        )
    )

    :: 累加对应物品的数量
    if defined count_!item_name! (
        set /a "count_!item_name!+=!num!"
    ) else (
        set "count_!item_name!=!num!"
    )
)

:: 写入统计结果
> "%OUTPUT%" (
    for /f "tokens=2,* delims=_=" %%a in ('set count_') do (
        echo %%bx %%a.
    )
)

echo 统计完成,结果已存储到 %OUTPUT%
endlocal
使用方法
  • 将上述代码复制保存为后缀为.bat的文件,例如count_items.bat
  • 将脚本和游戏导出的物品记录txt文件放在同一目录,修改脚本里INPUT变量的值为你的原始记录文件名,OUTPUT为你想要的结果文件名
  • 双击运行bat脚本,同目录下就会生成统计完成的结果文件,格式和需求给出的示例完全一致。

适配提示:如果你的物品名称包含!、=这类特殊符号,只需要对变量转义部分做小幅调整即可,常规包含空格、中英文的物品名可以直接正常识别统计。

内容的提问来源于stack exchange,提问作者PurplePanic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 09:12:19