楼 主
求教合并文件问题
发表于 2008-03-20 13:09 · 中国 上海 广电网
新手上路
★
积分 14 发帖 6 注册 2008-03-20 12:38 UID 113474 性别 男
状态 离线
有下列一些文件
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位给合并后的文件重命名,不知道能否实现。
第 2 楼
发表于 2008-03-20 15:36 · 中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 UID 1565 性别 男 来自 河北保定
状态 离线
copy a+b+c d
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子 ”和“
这个帖子 ”并努力遵守,如果可能,请告诉更多的人!
第 3 楼
发表于 2008-03-20 15:44 · 中国 上海 广电网
新手上路
★
积分 14 发帖 6 注册 2008-03-20 12:38 UID 113474 性别 男
状态 离线
这种方法文件名都是知道的情况,我是要针对所有文件,合并后提取原前几位字段来命名新文件。
第 4 楼
发表于 2008-03-20 15:45 · 中国 上海 广电网
新手上路
★
积分 14 发帖 6 注册 2008-03-20 12:38 UID 113474 性别 男
状态 离线
第 5 楼
发表于 2008-03-20 15:59 · 中国 上海 上海乾万网络(QianWan_Network)有限公司(电信出口)
中级用户
★★
我是DOS学者
积分 367 发帖 180 注册 2006-05-14 10:53 UID 55507 性别 男 来自 重庆
状态 离线
第 6 楼
发表于 2008-03-20 16:25 · 中国 上海 广电网
新手上路
★
积分 14 发帖 6 注册 2008-03-20 12:38 UID 113474 性别 男
状态 离线
Originally posted by BWSkyer at 2008-3-20 03:59 PM:
copy没有这么强的功能吧...
copy 只能做到合并,就是以指定文件名输出,但无法以参数的方式命名
第 7 楼
发表于 2008-03-20 16:45 · 中国 河北 保定 联通
铂金会员
★★★★
网络独行侠
积分 6,962 发帖 2,753 注册 2003-04-16 00:00 UID 1565 性别 男 来自 河北保定
状态 离线
配合上其它的命令也不是没有可能。
偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“
这个帖子 ”和“
这个帖子 ”并努力遵守,如果可能,请告诉更多的人!
第 8 楼
发表于 2008-03-20 17:18 · 中国 重庆 联通
银牌会员
★★★
积分 2,165 发帖 730 注册 2004-04-21 00:00 UID 22966 性别 男
状态 离线
先做一个长度为0的文件 :g123.hp
然后:
for %i in (*.plt) do copy /b g123.hp+%i g123.hp /y
第 9 楼
发表于 2008-03-20 17:27 · 中国 上海 广电网
新手上路
★
积分 14 发帖 6 注册 2008-03-20 12:38 UID 113474 性别 男
状态 离线
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
不过谢谢了。
第 10 楼
发表于 2008-03-20 19:35 · 中国 北京 华为云
银牌会员
★★★
积分 1,436 发帖 739 注册 2007-10-11 17:44 UID 99469 性别 男
状态 离线
@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-03-20 21:08
第 11 楼
发表于 2008-03-20 20:13 · 中国 上海 浦东新区 电信
新手上路
★
积分 14 发帖 6 注册 2008-03-20 12:38 UID 113474 性别 男
状态 离线
Originally posted by abcd at 2008-3-20 07:35 PM:
@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 ...
太感谢了,果然是高手!!!!!!!!
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正