中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: 文件名相同的文件合并 上一主题 | 下一主题
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『楼 主』:  文件名相同的文件合并

文件名前缀相同例如:
200612P9.txt
200701P2.txt
200702P10.txt
200702P11.txt
200702P12.txt
200811P1.txt
.........


成功了,感谢 kissbill。

[ Last edited by bjcb on 2008-12-13 at 22:36 ]

2008-12-12 23:49
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lserfn
初级用户





积分 97
发帖 49
注册 2008-9-24
状态 离线
『第 2 楼』:  

@echo off&setlocal enabledelayedexpansion
for /f %%i in ('dir /b') do (
set /a a+=1
set b=%%~ni
set c=!b:~0,6!
for /f %%z in ('dir /b') do (
set /e e+=1
set d=%%~nz
set f=!d:~0,6!
if !a!==!e! (
echo 同文件
) else (
if !c!==!f! copy %%~nxi %%z
)
)
)
pause

2008-12-13 04:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 3 楼』:  



  Quote:
@echo off&setlocal enabledelayedexpansion
for /f %%i in ('dir /b') do (
set /a a+=1
set b=%%~ni
set c=!b:~0,6!
for /f %%z in ('dir /b') do (
set /e e+=1
set d=%%~nz
set f=!d:~0,6!
if !a!==!e! (
echo 同文件
) else (
if !c!==!f! copy %%~nxi %%z
)
)
)
pause

lserfn的例子,是死循环啊,不能将相关文件合并到一起。
----------------------------------------
已复制         0 个文件。
文件无法自身复制。
已复制         0 个文件。
已复制         1 个文件。
已复制         1 个文件。
已复制         1 个文件。
已复制         1 个文件。
已复制         1 个文件。
已复制         1 个文件。
文件无法自身复制。
已复制         0 个文件。
已复制         1 个文件。
已复制         1 个文件。
已复制         1 个文件。
已复制         1 个文件。
已复制         1 个文件。
已复制         1 个文件。

2008-12-13 15:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kissbill
初级用户





积分 61
发帖 35
注册 2008-10-4
状态 离线
『第 4 楼』:  

看看这个
@echo off
type nul>200611.txt
for /f "delims=" %%i in ('dir /b /a-d 200*.txt') do (copy 200611.txt+%%i 200611.txt)
pause


2008-12-13 16:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
kissbill
初级用户





积分 61
发帖 35
注册 2008-10-4
状态 离线
『第 5 楼』:  

那你 以前就没说清楚  
哎。。

2008-12-13 16:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 6 楼』:  



  Quote:
Originally posted by kissbill at 2008-12-13 16:41:
那你 以前就没说清楚  
哎。。

不好意思
分组合并。是我没有说清。
主要是提取文件名相同的部分,然后删除重复再合并
还是可以直接 用for 直接循环相加分组文件?

2008-12-13 16:46
查看资料  发短消息 网志   编辑帖子  回复  引用回复
kissbill
初级用户





积分 61
发帖 35
注册 2008-10-4
状态 离线
『第 7 楼』:  

这个呢
@echo off
setlocal EnableDelayedExpansion
for /f "delims=" %%i in ('dir /a-d /b *.txt') do (set e=%%i
set e=!e:~0,6!
type nul>!e!.txt)
for /f "delims=" %%i in ('dir /b /a-d 200*p*.txt') do (set a=%%i
set b=!a:~0,6!
copy !b!.txt+%%i !b!.txt >nul 2>nul
)
pause


   此帖被 +1 点积分    点击查看详情   
评分人:【 bjcb 分数: +1  时间:2008-12-13 22:39


2008-12-13 18:54
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 8 楼』:  

谢谢,kissbill。
另外问一下,如果根据文件日期,如何分组copy?
type nul>!e!.txt ?这句 是什么意思?

copy !b!.txt+%%i !b!.txt >nul 2>nul  这句后两个 nul 分别是什么意思啊?
谢谢

2008-12-13 22:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 9 楼』:  Re 8楼

本版搜索“文件日期”
本版搜索“type nul”
本版搜索“>nul 2>nul”



2008-12-13 23:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by HAT at 2008-12-13 23:01:
本版搜索“文件日期”
本版搜索“type nul”
本版搜索“>nul 2>nul”

偶不是想给论坛节省资源嘛!
hoho
马上搜索...........

2008-12-14 01:31
查看资料  发短消息 网志   编辑帖子  回复  引用回复
bjcb
新手上路





积分 7
发帖 19
注册 2008-12-11
状态 离线
『第 11 楼』:  

汇报搜索结果

整个论坛搜索“type nul”
整个论坛搜索“>nul 2>nul”
没有结果

搜索“文件日期”
两个结果 都不是我要的分组那种。
----------------
怀疑我级别太低不能用那个全文搜索
所以 请出百度大婶

-----------------
>nul 2>nul site:cn-dos.net
13篇
重新在本论坛标题搜索 关键字
nul
出来26 个结果
嗯 有相关的帖子
----------------

2008-12-14 01:39
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: