[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 【已解决】用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文本内容如下:
  1. A商品01 512
  2. A商品02 141
复制代码
A商品数量2记录123.txt文本内容如下:
  1. A商品01 467
  2. A商品03 631
  3. A商品04 495
  4. A商品06 741
复制代码
执行批处理效果

A商品数量_合并.txt文本内容如下:
  1. A商品01 512
  2. A商品02 141
  3. 【区分】A商品01 467
  4. A商品03 631
  5. A商品04 495
  6. A商品06 741
复制代码
“数据合并”子文件夹有以下文件:
A商品数量_合并.txt
D销售_合并.txt
D销售量_合并.txt
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

难点在于  D销售  D销售量  DDD销售量  名称之间的正确区分,感觉不预先把这些进行重命名,无法正确处理。
期待高手写出代码。
目的,学习批处理

TOP

  1. @echo off
  2. md 数据合并
  3. for /f "tokens=1* delims=0123456789" %%a in ('dir /b /a-d *.txt') do (
  4. set /a #%%a+=1
  5. )
  6. for /f "tokens=1 delims==#" %%x in ('set # ^|findstr /vec:"=1"') do (
  7. set m=
  8. (for /f "delims=" %%i in ('dir /b /a-d *.txt ^|findstr /rc:"^%%x[0-9][0-9]*"') do (
  9. for /f "tokens=1* delims=[]" %%a in ('find /n /v "" ^<"%%i"') do (
  10. if %%a equ 1 (
  11. if defined m (
  12. echo 【区分】%%b
  13. ) else (
  14. echo=%%b
  15. )
  16. ) else (
  17. echo=%%b
  18. )
  19. )
  20. set m=1
  21. ))>"数据合并\%%x_合并.txt"
  22. )
  23. pause
复制代码
2

评分人数

bat小白,请多指教!谢谢!

TOP

返回列表