如何用batch脚本实现文本文件分隔符替换与指定列自动填充
实现方案
直接修改原有批处理代码,在分隔符替换逻辑后拼接固定默认后缀即可,完整代码如下:
@echo off setlocal disableDelayedExpansion set input="PLUIn.txt" set output="dibalscopitems2.txt" :: 定义原始分隔符 set "old_delim=," :: 定义目标分隔符 set "new_delim=|" :: 定义第9列到20列的固定默认值,按字段顺序拼接 set "fixed_suffix=21|2|1|0.00|000|000|0||2|45|1|" >%output% ( for /f "delims=" %%A in ('findstr /rn "^" %input%') do ( set ln=%%A setlocal enableDelayedExpansion set "ln=!ln:*:=!" if defined ln ( :: 替换逗号为管道符 set "ln=!ln:%old_delim%=%new_delim%!" :: 拼接固定后缀输出 echo(!ln!!fixed_suffix! ) endlocal ) )
改动说明
- 新增了
fixed_suffix变量,存储需求要求的第9列到第20列的固定值,后续如果需要调整默认值,直接修改这个变量的内容即可 - 原有分隔符替换逻辑不变,替换完成后直接在末尾拼接固定后缀再输出
验证说明
使用提供的输入文件测试,运行脚本后输出和期望结果完全一致。
内容的提问来源于stack exchange,提问作者thewastedtalent
相关产品推荐
相关产品推荐

