中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-10 03:35
47,811 主题排行 / 349,897 发帖 / 今日 2 篇 / 48,255 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]搜索文件并将文件以各自目录的名字重命名
可打印版本  1,007 / 6
第1楼 stoneyu 发表于 2008-10-19 17:45
初级用户 发帖 24 积分 53
[已结]搜索文件并将文件以各自目录的名字重命名
求助:批处理搜索文件并将文件以各自目录的名字重命名

条件:

有指定的文件夹“A”,而且里面还有N个子文件夹(子文件夹的名字是未知的),每个文件夹里都有文件。


目的:

自动读取每个子文件夹的名称,并且将其目录的文件按此文件夹的名称自动命名。

例如:假设子其中一个文件夹的名称为“B”那么其目录下的“*.txt”自动重命名为:B-001.txt、B-002.txt、B-003.txt ……

………………………… 等等很多文件夹 ………………………………

假设子还有一个文件夹的名称为“F”那么其目录下的“*.jpg”自动重命名为:F-001.jpg、F-002.jpg、F-003.jpg ……

………………………… 等等很多文件夹 ………………………………

★☆★☆★☆★ 注意:假设的文件夹都是未知的 ★☆★☆★☆★

其实我就是将上面的想法改变了一下,不知道是否可行?后缀名文件可以是已知的。


求各位高手出招了!先谢谢啦!!!

[ Last edited by HAT on 2008-10-20 at 12:26 ]
第2楼 HAT 发表于 2008-10-19 18:20
版主 发帖 5,017 积分 9,023
第3楼 sea1112 发表于 2008-10-19 18:25
初级用户 发帖 119 积分 131 来自 gz
是这样格式吗

文件夹名-001~n.后缀名
第4楼 HAT 发表于 2008-10-19 19:54
版主 发帖 5,017 积分 9,023
Re 4楼
能行得通。
只要你在顶楼把问题一次性表述清楚,自然有人贴代码。
第5楼 stoneyu 发表于 2008-10-20 00:16
初级用户 发帖 24 积分 53
HAT兄,用你2楼的P处理有些问题呢!

会有这样的提示:存在一个重名文件,或是找不到文件。

我到目录下去看了,有些文件的名字就没的被修改,但是再运行一次P处理有时又会OK了,但有时也还是会不行!这是为何???

不是文件名会全部被重新修改了,为何会提示文件重名呢?

[ Last edited by stoneyu on 2008-10-20 at 00:19 ]
第6楼 HAT 发表于 2008-10-20 00:53
版主 发帖 5,017 积分 9,023
Re 5楼
把重命名之前的文件名列表贴出来看看;把那些重命名失败的文件名列表贴出来看看。
仅凭一个“不行”,我无法猜到问题出在哪里。
第7楼 stoneyu 发表于 2008-10-20 11:44
初级用户 发帖 24 积分 53
这是“☆刁馋★”兄写的代码,基本能实现所说的功能了,在这里贴出来,给有同样需要的朋友参考,谢谢“HAT” 兄和“☆刁馋★”兄!!!

只是这个代码不能按指定的后缀名去重命名,而是将文件夹下所有文件重新命名了,如果能按指定文件重命名就好了。


@echo off
rem 不要把我放在A文件夹下
setlocal EnableDelayedExpansion
set n=1000
for /r "C:\Documents and Settings\Administrator\My Documents\A" %%a in (*) do (
call :GetParent "%%~dpa"
if "!Prev!"=="%%~dpa" (
set /a n+=1
ren "%%a" "!parent!-!n:~1!%%~xa"
) else (
set n=1001
ren "%%a" "!parent!-!n:~1!%%~xa"
)
set Prev=%%~dpa
)
echo.&pause&goto :eof

:GetParent
set parent=%~1
set parent=%parent:~,-1%
set parent2=%parent:*\=%
if "%parent%" neq "%parent2%" call :GetParent "%parent2%\"
goto :eof
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023