中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]如何给多级目录下的文件批量改名
作者:
标题: [求助]如何给多级目录下的文件批量改名 上一主题 | 下一主题
rockyuan
初级用户





积分 21
发帖 21
注册 2010-6-19
状态 离线
『楼 主』:  [求助]如何给多级目录下的文件批量改名

假设目录树的结构如下
A1{B2[C3(D4;c.txt); b.txt]; a.txt }  A1 B2 C3 D4都是文件夹。
意思是 A1下包含B2和a.txt,B2下包含C3和 b.txt,C3下包含D4和c.txt. D4只包含d.txt.
(这里的B2 C3 D4 a b c 都是未知的有很多很多)

类似a.txt 不用改名
类似b.txt 改成B2-b.txt
类似c.txt 改成C3-c.txt
类似d.txt 改成D4-d.txt

最后将所有文本文件都移动到A1下。
各位帮忙看下

[ Last edited by rockyuan on 2010-6-20 at 16:28 ]

2010-6-20 15:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rockyuan
初级用户





积分 21
发帖 21
注册 2010-6-19
状态 离线
『第 2 楼』:  [求助]如何在文件名前面加前缀。

需要在一批文件夹下面加前缀
如1.txt 改成a_1.txt
   2.txt 改成a_2.txt

2010-6-20 16:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 3 楼』:  

移动目录D:\rec下所有子目录中的文件(包括系统或隐藏属性)到D:\rec目录下,并同时改名:
@echo off&setlocal enabledelayedexpansion
set "hanye=D:\rec"
for /F "delims=" %%a in ('dir /s/b/a-d "%hanye%\*.*"') do if /i not "%%~dpa"=="%hanye%\" (
    set "guxing=%%~dpa"
    for %%b in ("!guxing:~0,-1!") do move "%%a" "%hanye%\%%~nb-%%~nxa"
)
[ Last edited by Hanyeguxing on 2010-6-20 at 17:59 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-6-20 17:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by rockyuan at 2010-6-20 16:51:
需要在一批文件夹下面加前缀
如1.txt 改成a_1.txt
   2.txt 改成a_2.txt

已回复:http://www.cn-dos.net/forum/viewthread.php?tid=51677&fpage=1



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-6-20 18:03
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rockyuan
初级用户





积分 21
发帖 21
注册 2010-6-19
状态 离线
『第 5 楼』:  

非常感谢。但是有点缺陷,如果是B2/C3/D4下的文件 到了A1下 其名称是D4-*txt。 能不能改成B2-C3-D4-*.txt
另外想问个类似的问题。
如问题所说的情况,如果现在不想把文件都移到1级目录,而是移动到2级目录,应该怎么改,移动完成后再将所有3 4级目录删除,该怎么做。(原来是提升N级目录,现在提升N-1级)

[ Last edited by rockyuan on 2010-6-20 at 18:24 ]

2010-6-20 18:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rockyuan
初级用户





积分 21
发帖 21
注册 2010-6-19
状态 离线
『第 6 楼』:  

非常感谢

2010-6-20 18:24
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 7 楼』:  



  Quote:
Originally posted by rockyuan at 2010-6-20 18:12:
非常感谢。但是有点缺陷,如果是B2/C3/D4下的文件 到了A1下 其名称是D4-*txt。 能不能改成B2-C3-D4-*.txt
另外想问个类似的问题。
如问题所说的情况,如果现在不想把文件都移到1级目录,而是移动到2级目录,应该怎么改,移动完成后再将所有3 4级目录删除,该怎么做。(原来是提升N级目录,现在提升N-1级)

1,那么原来N-1下的文件怎么办?
2,你在要求中没这么说,怎么能算缺陷呢?
3,支持:如果是B2/C3/D4下的文件 到了A1下 其名称是D4-*txt。 能不能改成B2-C3-D4-*.txt
@echo off&setlocal enabledelayedexpansion
set "han=D:\rec"
for /F "delims=" %%a in ('dir /s/b/a-d "%han%\*.*"') do if /i not "%%~dpa"=="%han%\" (
    set "ye=%%~dpa"&set "ye=!ye:%han%\=!"&set "ye=!ye:\=-!"
    move "%%a" "%han%\!ye!%%~nxa"
)
[ Last edited by Hanyeguxing on 2010-6-20 at 18:56 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-6-20 18:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rockyuan
初级用户





积分 21
发帖 21
注册 2010-6-19
状态 离线
『第 8 楼』:  

不是缺陷
我没说清楚,言语上的错误不好意思。。

N-1的不用改的。
就是让很多层次的文件,最后形成一个只有A1{B1[*.TXT];B2[*.txt];B3....Bn}这样。 并且通过文件名能判断出它原来在什么地方。

[ Last edited by rockyuan on 2010-6-20 at 18:59 ]

2010-6-20 18:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rockyuan
初级用户





积分 21
发帖 21
注册 2010-6-19
状态 离线
『第 9 楼』:  

按照你后面给的代码 我好像应该回答是N+1

2010-6-20 19:02
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by rockyuan at 2010-6-20 19:02:
按照你后面给的代码 我好像应该回答是N+1

具体说是哪些目录,我不能在那里乱猜,最好举例说明



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-6-20 19:12
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
rockyuan
初级用户





积分 21
发帖 21
注册 2010-6-19
状态 离线
『第 11 楼』:  

原来的文件
A1
   -x1.txt
   -B1
     -x2.txt
   -B2
     -x3.txt
     -c1
        -x4.txt
     -c2
        -x5.txt
        -d1
           -x6.txt


现在要转变成这样
A1
   -x1.txt
   -B1
     -x2.txt
   -B2
     -x3.txt
     -c1-x4.txt
     -c2-x5.txt
     -c2-d1-x6.txt

然后将Cn Dn 这些目录都删除

这样表达行吗

[ Last edited by rockyuan on 2010-6-20 at 20:04 ]

2010-6-20 19:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: