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

批处理脚本优化:过滤冗余数据仅保留编号与文件名

优化后的BAT脚本:精准提取编号与文件名对应关系

你原来的脚本会带出空白项、姓名这类冗余内容,核心原因是没有精准定位到我们需要的编号段和文件列表段。下面是调整后的脚本,直接输出你要求的编号,文件名格式:

@echo off
setlocal EnableDelayedExpansion
> "Output.csv" (
    for /F "usebackq delims=;" %%L in ("transact.txt") do (
        :: 拆分每一条独立记录(分号分隔)
        for /F "tokens=1,2 delims=:" %%A in ("%%L") do (
            :: 只取编号部分:从冒号后内容里提取第一个逗号前的字符串
            for /F "tokens=1 delims=," %%N in ("%%B") do (
                :: 处理冒号后的文件列表,按逗号拆分每个文件名
                set "FILELIST=%%C"
                for %%F in ("!FILELIST:,=" "!") do (
                    :: 输出指定格式的内容
                    echo %%~N,%%~F
                )
            )
        )
    )
)
endlocal

关键优化说明

  • 分层拆分数据:先按分号;把整条大文本拆成独立记录,避免跨记录处理的混乱
  • 精准抓编号:用tokens=1 delims=,从85123, ,Smith...这类内容里,只提取第一个逗号前的编号(比如85123),直接跳过后面的姓名、空白项
  • 干净处理文件列表:直接定位到冒号后的文件列表部分,按逗号拆分后逐个输出,完全不碰冗余内容
  • 严格匹配输出格式:直接输出%%~N,%%~F,完全符合你要的编号,文件名样式

测试效果

用你给出的示例输入:

85:85123, ,Smith,181215:image.tif,image2.tif,image3.tif;85:85456, ,Richard,184985:image4.tif,image5.tif;85:85789, ,Aly,589456:image.tif

运行脚本后,Output.csv里的内容会是:

85123,image.tif
85123,image2.tif
85123,image3.tif
85456,image4.tif
85456,image5.tif
85789,image.tif

这样就彻底去掉了所有冗余内容,只保留你需要的编号和文件名对应关系啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:28:21