标题: 求教合并文件问题
[打印本页]
作者: termmy
时间: 2008-3-20 13:09
标题: 求教合并文件问题
有下列一些文件
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位给合并后的文件重命名,不知道能否实现。
作者: Climbing
时间: 2008-3-20 15:36
copy a+b+c d
作者: termmy
时间: 2008-3-20 15:44
这种方法文件名都是知道的情况,我是要针对所有文件,合并后提取原前几位字段来命名新文件。
作者: termmy
时间: 2008-3-20 15:45
应该用 echo来编吧? 我不会这种命令
作者: BWSkyer
时间: 2008-3-20 15:59
copy没有这么强的功能吧...
作者: termmy
时间: 2008-3-20 16:25
Quote: |
Originally posted by BWSkyer at 2008-3-20 03:59 PM:
copy没有这么强的功能吧... |
|
copy 只能做到合并,就是以指定文件名输出,但无法以参数的方式命名
作者: Climbing
时间: 2008-3-20 16:45
配合上其它的命令也不是没有可能。
作者: bush
时间: 2008-3-20 17:18
先做一个长度为0的文件 :g123.hp
然后:
for %i in (*.plt) do copy /b g123.hp+%i g123.hp /y
作者: termmy
时间: 2008-3-20 17:27
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
不过谢谢了。
作者: abcd
时间: 2008-3-20 19:35
@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
作者: termmy
时间: 2008-3-20 20:13
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 ... |
|
太感谢了,果然是高手!!!!!!!!