|
lotus516
高级用户
论坛上抢劫的
积分 551
发帖 246
注册 2006-9-21
状态 离线
|
『楼 主』:
如何更改如下文件目录和文件名为想要的!!
想把如下的源文件结构改为新的文件结构:
└─old
│
│
├─1
│ 001
│ 002
| ......
│ 011
│ 012
│
├─2
│ 001
│ 002
| ......
│ 012
│ 013
│
└─3
│ 001
│ 002
| ......
│ 010
│ 011
└─4
│ 001
│ 002
| ......
│ 011
│ 012
└─5
│ 001
│ 002
| ......
│ 012
│ 013
.........
└─99
│ 001
│ 002
| ......
│ 011
│ 012
└─new
│
│
├─1
│ 001
│ 002
| ......
│ 098
│ 099
| .......
总之是把旧的文件夹中的文件按旧的目录树的结构用递增的文件名改名并放入新的文件夹中!!!
[ Last edited by lotus516 on 2006-11-18 at 03:18 AM ]
|
|
2006-11-18 02:38 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
2 楼』:
sort /?
这个命令我不熟悉,你看看帮助看可以不?
|
|
2006-11-18 02:41 |
|
|
ccwan
金牌会员
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
3 楼』:
dir /b/on >显示.txt
能满足你的要求吗?
|
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2006-11-18 03:03 |
|
|
lotus516
高级用户
论坛上抢劫的
积分 551
发帖 246
注册 2006-9-21
状态 离线
|
『第
4 楼』:
不能,我要的是把旧的文件夹中的文件按旧的目录树的结构用递增的文件名改名并放入新的文件夹中!!!
|
|
2006-11-18 03:07 |
|
|
ccwan
金牌会员
积分 2725
发帖 1160
注册 2006-9-23 来自 河北廊坊
状态 离线
|
『第
5 楼』:
偶和vkill都以为你显示排序呢!
提问时请将问题说详细。
|
三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。 |
|
2006-11-18 03:10 |
|
|
lotus516
高级用户
论坛上抢劫的
积分 551
发帖 246
注册 2006-9-21
状态 离线
|
『第
6 楼』:
晕,是我表达不清???不会吧!!!
|
|
2006-11-18 03:14 |
|
|
NaturalJ0
银牌会员
积分 1181
发帖 533
注册 2006-8-14
状态 离线
|
『第
7 楼』:
试试看这段,不知道合不合你要求。
放在 OLD 文件夹的上一层使用。
@echo off
setlocal enabledelayedexpansion
if not exist new md new
set num=1
for /r old %%i in (.) do (dir/s/a-d/b/on "%%i">>list.lst 2>nul)
for /f "delims=" %%i in (list.lst) do (
set name=00!num!
set name=!name:~-3!
copy "%%i" new\!name!.* >nul 2>nul
set/a num+=1
)
if exist list.lst del list.lst 因为我看你只用了三位,所以只能处理到999个文件。
如果你文件更多,自己修改下。
|
|
2006-11-18 04:30 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
8 楼』:
NaturalJ0 兄的代码挺不错的,只是要生成临时文件,有点不爽。我来一段代码,这个代码要放在old文件夹下,如果有特殊要求,请修改copy里的参数:
@echo off
if not exist ..\new md ..\new
setlocal enabledelayedexpansion
for /l %%i in (1,1,99) do (
for /f "delims=" %%j in ('dir /a-d /b /s %%i') do (
set /a num+=1
set name=00!num!
copy "%%j" ..\new\!name:~-3!%%~xj>nul
)
)
start ..\new [ Last edited by namejm on 2006-11-17 at 08:08 PM ]
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2006-11-18 05:21 |
|
|
lotus516
高级用户
论坛上抢劫的
积分 551
发帖 246
注册 2006-9-21
状态 离线
|
『第
9 楼』:
哎,看不懂for /r old %%i in (.) do (dir/s/a-d/b/on "%%i">>list.lst 2>nul)这一句,还有一个问题,就是生成的临时文件为什么会重复信息呢?贴上临时文件!!
附件
1: list.txt (2006-11-18 08:45, 14.85 K, 下载附件所需积分 1 点
,下载次数: 6)
|
|
2006-11-18 08:45 |
|
|
namejm
荣誉版主
batch fan
积分 5226
发帖 1737
注册 2006-3-10 来自 成都
状态 离线
|
『第
10 楼』:
我晕,还以为你那些001、002之类的是文件夹名呢,原来是文件名啊。我在8F的代码已修改,请测试。
|
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。 |
|
2006-11-18 09:08 |
|