标题: [文本处理] 【已解决】用bat把多个文本合并为对应一个文本? [打印本页]
作者: zllk 时间: 2023-9-16 22:58 标题: 【已解决】用bat把多个文本合并为对应一个文本?
本帖最后由 zllk 于 2023-9-17 01:55 编辑
“数据”文件夹有以下文件:
A商品数量01.txt
A商品数量02记录123.txt
D销售001.txt
……
D销售191旧.txt
DDD销售量1.txt
D销售量1.txt
……
D销售量146.txt
A商品数量1.txt文本内容如下:复制代码
A商品数量2记录123.txt文本内容如下:- A商品01 467
-
- A商品03 631
- A商品04 495
-
- A商品06 741
复制代码
执行批处理效果
A商品数量_合并.txt文本内容如下:- A商品01 512
- A商品02 141
- 【区分】A商品01 467
-
- A商品03 631
- A商品04 495
-
- A商品06 741
复制代码
“数据合并”子文件夹有以下文件:
A商品数量_合并.txt
D销售_合并.txt
D销售量_合并.txt
作者: hlzj88 时间: 2023-9-16 23:48
难点在于 D销售 D销售量 DDD销售量 名称之间的正确区分,感觉不预先把这些进行重命名,无法正确处理。
期待高手写出代码。
作者: 77七 时间: 2023-9-17 01:09
- @echo off
- md 数据合并
- for /f "tokens=1* delims=0123456789" %%a in ('dir /b /a-d *.txt') do (
- set /a #%%a+=1
- )
- for /f "tokens=1 delims==#" %%x in ('set # ^|findstr /vec:"=1"') do (
- set m=
- (for /f "delims=" %%i in ('dir /b /a-d *.txt ^|findstr /rc:"^%%x[0-9][0-9]*"') do (
- for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%i"') do (
- if %%a equ 1 (
- if defined m (
- echo 【区分】%%b
- ) else (
- echo=%%b
- )
- ) else (
- echo=%%b
- )
- )
- set m=1
- ))>"数据合并\%%x_合并.txt"
- )
- pause
复制代码
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |