|
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 来自 在地狱中仰望天堂
状态 离线
|
|
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
状态 离线
|
|
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 来自 在地狱中仰望天堂
状态 离线
|
|
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 |
|