中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-11 07:06
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 合并文件夹的疑问? 查看 2,335 回复 21
16 发表于 2008-08-18 00:04 ·  中国 江苏 苏州 电信
初级用户
积分 88
发帖 41
注册 2006-05-13 21:57
20年会员
UID 55479
状态 离线
如果文件名相同,更改文件名后,希望达到这样的效果。(需要改名的文件不只是word一种,这里只是举个例子。)




按照您的代码运行后是这样的结果(两个都是word文件)



[ Last edited by q1a2z3q1a2z3 on 2008-8-18 at 12:11 AM ]
17 Re 16楼 发表于 2008-08-18 09:46 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
@echo off
set mypath=E:
if not exist "%mypath%\合并" (
md "%mypath%\合并"
)
for /f "tokens=*" %%a in ('dir /s /b /ad "%mypath%"') do (
if "%%a" neq "%mypath%\合并" (
for /f "tokens=*" %%b in ('dir /s /b /a-d "%%a" 2^>nul') do (
if exist "%mypath%\合并\%%~nxb" (
ren "%mypath%\合并\%%~nxb" "%%~nb.old%%~xb">nul 2>nul
)
move "%%b" "%mypath%\合并">nul 2>nul
)
)
)
18 发表于 2008-08-18 11:52 ·  中国 江苏 苏州 电信
初级用户
积分 88
发帖 41
注册 2006-05-13 21:57
20年会员
UID 55479
状态 离线
如果有三个文件重名,合并后只能保存两个文件。

如果是多个多个同名文件希望合并后能这样。
1.doc 1.old.doc 1.old.old.doc ................
19 发表于 2008-08-18 11:57 ·  美国 惠普HP
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
19年会员
UID 89899
性别 男
状态 离线
Windows系统支持的最长路径是225吧,如果你有几十个重复的文件,就会超过这个阀值,这个方案在理论上不具备可行性,想其它方法吧。
20 发表于 2008-08-18 12:16 ·  中国 江苏 苏州 电信
初级用户
积分 88
发帖 41
注册 2006-05-13 21:57
20年会员
UID 55479
状态 离线
如果支持更改5个同名文件,应该不会超过系统限制?具体如何修改?

[ Last edited by q1a2z3q1a2z3 on 2008-8-18 at 01:04 PM ]
21 发表于 2009-02-04 09:59 ·  中国 辽宁 鞍山 联通
新手上路
积分 1
发帖 1
注册 2009-02-03 10:04
17年会员
UID 137903
性别 男
状态 离线
我想保留原文件,并将合并后的文件改到别的盘,如何写啊。哪句话是删除原文件的意思。
22 发表于 2009-02-04 11:13 ·  美国 华盛顿州 金 雷德蒙德 Microsoft
初级用户
★★
积分 100
发帖 93
注册 2009-01-14 15:04
17年会员
UID 136661
性别 男
来自 湖南
状态 离线
将HAT的代码执行完以后,使用XCOPY指令,移动到你想移动的盘符
删除原文件可以使用:del 指令
关于xcopy和del的用法,看del /?, xcopy /?
论坛跳转: