中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-10 21:07
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 文件名相同的文件合并 查看 1,251 回复 10
楼 主 文件名相同的文件合并 发表于 2008-12-12 23:49 ·  中国 北京 石景山区 联通
新手上路
积分 7
发帖 19
注册 2008-12-11 18:45
17年会员
UID 133569
性别 男
状态 离线
文件名前缀相同例如:
200612P9.txt
200701P2.txt
200702P10.txt
200702P11.txt
200702P12.txt
200811P1.txt
.........


成功了,感谢 kissbill。

[ Last edited by bjcb on 2008-12-13 at 22:36 ]
2 发表于 2008-12-13 04:57 ·  中国 广东 揭阳 电信
初级用户
积分 97
发帖 49
注册 2008-09-24 03:17
17年会员
UID 126450
性别 男
状态 离线
@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
3 发表于 2008-12-13 15:03 ·  中国 北京 联通
新手上路
积分 7
发帖 19
注册 2008-12-11 18:45
17年会员
UID 133569
性别 男
状态 离线

@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 个文件。
4 发表于 2008-12-13 16:20 ·  中国 天津 电信
初级用户
积分 61
发帖 35
注册 2008-10-04 13:00
17年会员
UID 127389
性别 男
状态 离线
看看这个
@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
5 发表于 2008-12-13 16:41 ·  中国 天津 电信
初级用户
积分 61
发帖 35
注册 2008-10-04 13:00
17年会员
UID 127389
性别 男
状态 离线
那你 以前就没说清楚
哎。。
6 发表于 2008-12-13 16:46 ·  中国 北京 联通
新手上路
积分 7
发帖 19
注册 2008-12-11 18:45
17年会员
UID 133569
性别 男
状态 离线
Originally posted by kissbill at 2008-12-13 16:41:
那你 以前就没说清楚
哎。。

不好意思
分组合并。是我没有说清。
主要是提取文件名相同的部分,然后删除重复再合并
还是可以直接 用for 直接循环相加分组文件?
7 发表于 2008-12-13 18:54 ·  中国 天津 电信
初级用户
积分 61
发帖 35
注册 2008-10-04 13:00
17年会员
UID 127389
性别 男
状态 离线
这个呢

@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
8 发表于 2008-12-13 22:56 ·  中国 北京 联通
新手上路
积分 7
发帖 19
注册 2008-12-11 18:45
17年会员
UID 133569
性别 男
状态 离线
谢谢,kissbill。
另外问一下,如果根据文件日期,如何分组copy?
type nul>!e!.txt ?这句 是什么意思?

copy !b!.txt+%%i !b!.txt >nul 2>nul 这句后两个 nul 分别是什么意思啊?
谢谢
9 Re 8楼 发表于 2008-12-13 23:01 ·  中国 重庆 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
本版搜索“文件日期”
本版搜索“type nul”
本版搜索“>nul 2>nul”
10 发表于 2008-12-14 01:31 ·  中国 北京 联通
新手上路
积分 7
发帖 19
注册 2008-12-11 18:45
17年会员
UID 133569
性别 男
状态 离线
Originally posted by HAT at 2008-12-13 23:01:
本版搜索“文件日期”
本版搜索“type nul”
本版搜索“>nul 2>nul”

偶不是想给论坛节省资源嘛!
hoho
马上搜索...........
11 发表于 2008-12-14 01:39 ·  中国 北京 联通
新手上路
积分 7
发帖 19
注册 2008-12-11 18:45
17年会员
UID 133569
性别 男
状态 离线
汇报搜索结果

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

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

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