找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 71655|回复: 26

[文本处理] 更新:批处理把文档按要求合并,这个感觉好难!,大神们一起看看

[复制链接]
发表于 2015-11-18 22:26:04 | 显示全部楼层 |阅读模式
本帖最后由 WYXpclOK 于 2015-11-20 22:52 编辑

我的文件夹DATAS里有文档:
AA-A1-A1-01.CSV
AA-A1-A1-02.CSV
AA-A1-A1-03.CSV
BB-B1-B1-01.CSV
BB-B1-B1-02.CSV
CC-C2-C2-02.CSV
CC-C2-C2-03.CSV
DD-D4-D4-01.CSV
........
等此类CSV文档
每个文档的内容都是如下格式:
AA-A1-A1-01的内容:
AA-A1-A1-01                                                                              
AA-A1-A1-01
X,Y,COMP,B,F1-1,F1-2,F1-3,F2,F3,IR,F4,IV,W1,W2,C,W
0XXXXXXXXXXXXXXXXXXXXX
1XXXXXXXXXXXXXXXXXXXXX
2XXXXXXXXXXXXXXXXXXXXX
3XXXXXXXXXXXXXXXXXXXXX
.........
AA-A1-A1-02的内容:
AA-A1-A1-02              
AA-A1-A1-02
X,Y,COMP,B,F1-1,F1-2,F1-3,F2,F3,IR,F4,IV,W1,W2,C,W
0XXXXXXXXXXXXXXXXXXXXX
1XXXXXXXXXXXXXXXXXXXXX
2XXXXXXXXXXXXXXXXXXXXX
3XXXXXXXXXXXXXXXXXXXXX
.........
要求1:让文档按照:AA-A1-A1-01+AA-A1-A1-02+AA-A1-A1-03    BB-B1-B1-01+BB-B1-B1-02   CC-C2-C2-01+CC-C2-C2-03方式合并文档,也就是说要名字除了-01,-02,-03等的序号不一样其他的名字都要一样才可以合并.
要求2:文档合并后的文档到另一文件夹中,名字为-01序号前的名字如:(AA-A1-A1)并且内容只保留第一个文档的前三行,第二或者第三个文档的前三行不要,后面的内容接第一个文档最后一行的下一行.例如:
合并AA-A1-A1-01+AA-A1-A1-02+AA-A1-A1-03后新的文档名字为AA-A1-A1
且内容:
AA-A1-A1-01                                                                              
AA-A1-A1-01
X,Y,COMP,B,F1-1,F1-2,F1-3,F2,F3,IR,F4,IV,W1,W2,C,W
0XXXXXXXXXXXXXXXXXXXXX
1XXXXXXXXXXXXXXXXXXXXX
2XXXXXXXXXXXXXXXXXXXXX
3XXXXXXXXXXXXXXXXXXXXX
.........
0XXXXXXXXXXXXXXXXXXXXX
1XXXXXXXXXXXXXXXXXXXXX
2XXXXXXXXXXXXXXXXXXXXX
3XXXXXXXXXXXXXXXXXXXXX
.........
0XXXXXXXXXXXXXXXXXXXXX
1XXXXXXXXXXXXXXXXXXXXX
2XXXXXXXXXXXXXXXXXXXXX
3XXXXXXXXXXXXXXXXXXXXX
.........
要求3:在合并时要像附件里图片那样,如果在输入需要合并的文档名称时在DATAS文件里没有这个文档要提示“找不到此文件请确认重新输入”,如果有就继续下一步。还要循环使用;批处理可以在任何地方,不要在DATAS文件夹里,也就是说可以指定要合并文档的所在文件夹路径,和合并文档后存放的路径。

附件有更新:链接: http://pan.baidu.com/s/1jGnRo8Y 密码: 5rn1
希望大家帮我看看这个应该怎么写!!!
发表于 2015-11-18 22:33:36 | 显示全部楼层
附件传网盘。
 楼主| 发表于 2015-11-18 22:53:15 | 显示全部楼层
回复 2# 依山居


文档你可以自己按照我的格式建几个
 楼主| 发表于 2015-11-19 07:37:40 | 显示全部楼层

标题

回复 1# WYXpclOK 大神们帮我看看
发表于 2015-11-19 08:23:20 | 显示全部楼层
最好传点样本用于测试
发表于 2015-11-19 16:01:21 | 显示全部楼层
这是要比懒呢,你懒我更懒。
 楼主| 发表于 2015-11-19 20:23:05 | 显示全部楼层
附件里有样本
 楼主| 发表于 2015-11-19 21:35:49 | 显示全部楼层
有人看了吗
发表于 2015-11-19 22:10:26 | 显示全部楼层
本帖最后由 wankoilz 于 2015-11-19 22:12 编辑

把批处理和待处理文件放一起执行:
  1. @echo off&setlocal enabledelayedexpansion
  2. set/p target=请输入要建立的文档:
  3. set/p first=请输入要合并的文档1:
  4. if not exist %first%.csv exit
  5. (for /f "delims=" %%a in (%first%.csv) do (
  6.         set/a n+=1 & echo %%a & if !n! equ 3 goto :out
  7. ))>%target%.csv
  8. :out
  9. for /f "delims=" %%a in ('dir/b %target%-*.csv') do (
  10.         more +3 %%a >>%target%.csv
  11. )
  12. pause
复制代码
 楼主| 发表于 2015-11-20 20:41:44 | 显示全部楼层
回复 9# wankoilz


    不可以指定需要合并文档的文件夹和合并后存放文档的文件夹吗?
 楼主| 发表于 2015-11-20 20:49:21 | 显示全部楼层
回复 9# wankoilz


    需要指定要合并的文档1和文档2乃至文档3,合并后的存放路径也要指定
发表于 2015-11-20 21:23:20 | 显示全部楼层
多运行几次不就可以了
发表于 2015-11-20 21:51:20 | 显示全部楼层
  1. @echo off & setlocal enabledelayedexpansion

  2. :: 要合并的文件位置
  3. set sourcePath=%~dp0DATAS
  4. :: 目的文件夹
  5. set target=%~dp0DATAS\合并后

  6. :: 确认目的文件夹存在
  7. mkdir DATAS\Target >nul
  8. for /f "tokens=1-3* delims=-" %%a in ('dir /b /a-d "%sourcePath%"^|sort') do (
  9.         set file=%%a-%%b-%%c-%%d
  10.         if not defined %%a-%%b-%%c (
  11.                 echo;--------------------------------------------------
  12.                 echo;合并!file!...
  13.                 set %%a-%%b-%%c=1&set n=0
  14.                 for /f "delims=" %%i in (%sourcePath%\!file!) do (
  15.                         set /a n+=1
  16.                         if !n! leq 3 echo;%%i>>"%target%\%%a-%%b-%%c.%%~xd"
  17.                 )
  18.         ) else (
  19.                 echo;合并!file!
  20.                 more +3 "%sourcePath%\!file!">>"%target%\%%a-%%b-%%c.%%~xd"
  21.         )
  22. )

  23. pause & exit /b
复制代码
 楼主| 发表于 2015-11-20 22:24:34 | 显示全部楼层
还是请看看我的要求吧
发表于 2015-11-20 22:43:51 | 显示全部楼层
哦,你要求的太难了,不会
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 06:50 , Processed in 0.022692 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表