中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 求教合并文件问题 上一主题 | 下一主题
termmy
新手上路





积分 14
发帖 6
注册 2008-3-20
状态 离线
『楼 主』:  求教合并文件问题

有下列一些文件
g123-1.plt
g123-2.plt
g123-3.plt
想把他们合并为
g123.hp


我用DOS命令中的COPY做了个BAT文件。

copy *.plt  ????.hp
结果是分别拷贝成g123.hp,因此最终只是g123-3.plt一个文件被复制,其余两个都被覆盖掉。
如果 copy *.plt  g123.hp就可以实现。

但实际中前4位不是定值,那么我的想法是先合并成一个文件在取原文件前4位给合并后的文件重命名,不知道能否实现。

2008-3-20 13:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 2 楼』:  

copy a+b+c d



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-3-20 15:36
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
termmy
新手上路





积分 14
发帖 6
注册 2008-3-20
状态 离线
『第 3 楼』:  

这种方法文件名都是知道的情况,我是要针对所有文件,合并后提取原前几位字段来命名新文件。

2008-3-20 15:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
termmy
新手上路





积分 14
发帖 6
注册 2008-3-20
状态 离线
『第 4 楼』:  

应该用 echo来编吧? 我不会这种命令

2008-3-20 15:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
BWSkyer
中级用户

我是DOS学者


积分 367
发帖 180
注册 2006-5-14
来自 重庆
状态 离线
『第 5 楼』:  

copy没有这么强的功能吧...



My blog:左铅右椠 上善若水
My team: 519创意团队
2008-3-20 15:59
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (309843581)  编辑帖子  回复  引用回复
termmy
新手上路





积分 14
发帖 6
注册 2008-3-20
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by BWSkyer at 2008-3-20 03:59 PM:
copy没有这么强的功能吧...

copy 只能做到合并,就是以指定文件名输出,但无法以参数的方式命名

2008-3-20 16:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 7 楼』:  

配合上其它的命令也不是没有可能。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2008-3-20 16:45
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
bush
银牌会员




积分 2165
发帖 730
注册 2004-4-21
状态 离线
『第 8 楼』:  


先做一个长度为0的文件 :g123.hp
然后:

for %i in (*.plt) do copy /b g123.hp+%i g123.hp /y


2008-3-20 17:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
termmy
新手上路





积分 14
发帖 6
注册 2008-3-20
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by bush at 2008-3-20 05:18 PM:

先做一个长度为0的文件 :g123.hp
然后:

for %i in (*.plt) do copy /b g123.hp+%i g123.hp /y

试了不行呀,再说这句里有G123了,我是要读PLT文件中前4为,比如文件是A534-1.PLT,输出就应该是A534.hp

不过谢谢了。

2008-3-20 17:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
abcd
银牌会员





积分 1436
发帖 739
注册 2007-10-11
状态 离线
『第 10 楼』:  


@echo off
setlocal enabledelayedexpansion
for %%i in (*.plt) do (
   set fn=%%i
   if not exist "!fn:~0,4!.hp" copy nul "!fn:~0,4!.hp">nul
   copy "!fn:~0,4!.hp"+"%%i" "!fn:~0,4!.hp">nul
)
pause


   此帖被 +1 点积分    点击查看详情   
评分人:【 termmy 分数: +1  时间:2008-3-20 21:08


2008-3-20 19:35
查看资料  发短消息 网志  OICQ (470237592)  编辑帖子  回复  引用回复
termmy
新手上路





积分 14
发帖 6
注册 2008-3-20
状态 离线
『第 11 楼』:  



  Quote:
Originally posted by abcd at 2008-3-20 07:35 PM:
[code]
@echo off
setlocal enabledelayedexpansion
for %%i in (*.plt) do (
   set fn=%%i
   if not exist "!fn:~0,4!.hp" copy nul "!fn:~0,4!.hp">nul
   copy "!fn:~0,4 ...

太感谢了,果然是高手!!!!!!!!

2008-3-20 20:13
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: