中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 如何更改如下文件目录和文件名为想要的!!
作者:
标题: 如何更改如下文件目录和文件名为想要的!! 上一主题 | 下一主题
lotus516
高级用户

论坛上抢劫的


积分 551
发帖 246
注册 2006-9-21
状态 离线
『楼 主』:  如何更改如下文件目录和文件名为想要的!! 使用 LLM 解释/回答一下

想把如下的源文件结构改为新的文件结构:
└─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 楼』:   使用 LLM 解释/回答一下

sort /?

这个命令我不熟悉,你看看帮助看可以不?


2006-11-18 02:41
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

dir /b/on >显示.txt
能满足你的要求吗?




三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
2006-11-18 03:03
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
lotus516
高级用户

论坛上抢劫的


积分 551
发帖 246
注册 2006-9-21
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

不能,我要的是把旧的文件夹中的文件按旧的目录树的结构用递增的文件名改名并放入新的文件夹中!!!


2006-11-18 03:07
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
ccwan
金牌会员




积分 2725
发帖 1160
注册 2006-9-23
来自 河北廊坊
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

偶和vkill都以为你显示排序呢!
提问时请将问题说详细。




三人行,必有吾师焉。 学然后知不足,教然后知困,然后能自强也。
2006-11-18 03:10
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
lotus516
高级用户

论坛上抢劫的


积分 551
发帖 246
注册 2006-9-21
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

晕,是我表达不清???不会吧!!!


2006-11-18 03:14
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
NaturalJ0
银牌会员




积分 1181
发帖 533
注册 2006-8-14
状态 离线
『第 7 楼』:   使用 LLM 解释/回答一下

试试看这段,不知道合不合你要求。
放在 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 楼』:   使用 LLM 解释/回答一下

  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 楼』:   使用 LLM 解释/回答一下

哎,看不懂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 KiB, 下载附件所需积分 1 点 ,下载次数: 6)
2006-11-18 08:45
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

  我晕,还以为你那些001、002之类的是文件夹名呢,原来是文件名啊。我在8F的代码已修改,请测试。




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-11-18 09:08
查看资料  发短消息  网志   编辑帖子  回复  引用回复

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


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



论坛跳转: