楼 主
这种改名要求能否实现:根据父文件夹重命名文件
发表于 2008-10-06 15:33 · 中国 浙江 杭州 电信
初级用户
★
积分 65 发帖 27 注册 2008-08-28 21:14 17年会员 UID 124424 性别 男
状态 离线
:
比如我有一个文件夹名字为 资料,
里面又有其他的文件夹,比如说有 英语资料,数学资料,语文资料 三个文件夹;
而每个文件夹里又有很多文档、图片之类的文件。
能否实现批量 英语资料文件夹里所有文件名以英语资料开头, 语文资料文件夹里所有文件名以语文资料开头,数学资料文件夹里所有文件以数学资料开头 。
───────────────── 版务记录 ─────────────────
执行:HAT
操作:2008-10-07在帖子标题中增加搜索关键字
说明:原标题"如果是这种批处理改名要求批处理能否实现"不利于论坛搜索
处罚:扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────
[
Last edited by HAT on 2008-10-7 at 01:49 ]
本帖最近评分记录
(共 1 条)
点击查看详情
评分人 分数 时间
HAT
-2
2008-10-07 01:49
第 2 楼
发表于 2008-10-06 16:16 · 中国 江西 赣州 电信
银牌会员
★★★★
积分 2,025 发帖 1,122 注册 2007-09-05 20:15 18年会员 UID 96653 性别 男
状态 离线
@echo off
set folder=G:\test\资料
for %%a in (英语资料 数学资料 语文资料) do (
for /f "delims=" %%b in ('dir /b "%folder%\%%a"') do (
ren "%folder%\%%a\%%b" "%%a%%b"
)
)
第 3 楼
发表于 2008-10-06 16:34 · 中国 山东 淄博 联通
初级用户
★
积分 63 发帖 37 注册 2008-08-09 11:46 18年会员 UID 123026 性别 男
状态 离线
第 4 楼
回2楼
发表于 2008-10-06 22:51 · 中国 浙江 杭州 西湖区 电信
初级用户
★
积分 65 发帖 27 注册 2008-08-28 21:14 17年会员 UID 124424 性别 男
状态 离线
先赞一个啊
如果是不仅要把里面的文件以文件夹的名字做开头,而且还能自动排序呢?
比如数学资料文件夹里所有文件以数学资料开头 并且
为 数学资料1 ,数学资料2 ,数学资料3 依次类推 把原有的文件名称都这样替换掉,命令如何写?
第 5 楼
发表于 2008-10-07 10:37 · 中国 湖北 武汉 电信
版主
★★★★★
积分 11,386 发帖 4,938 注册 2006-07-23 17:10 20年会员 UID 59080
状态 离线
Originally posted by 666cool at 2008-10-6 22:51:
先赞一个啊
如果是不仅要把里面的文件以文件夹的名字做开头,而且还能自动排序呢?
比如数学资料文件夹里所有文件以数学资料开头 并且
为 ...
添加一个计数器变量即可实现,演示代码如下,未测试,有问题欢迎跟帖讨论。
@echo off & SetLocal EnableDelayedExpansion
set folder=G:\test\资料
:: 添加index变量为计数器用
set index=1
for %%a in (英语资料 数学资料 语文资料) do (
for /f "delims=" %%b in ('dir /b "%folder%\%%a"') do (
ren "%folder%\%%a\%%b" "%%a!index!"
set /a index+=1
)
rem 还原index的值:
set index=1
)
第 6 楼
发表于 2008-10-07 13:16 · 中国 广东 广州 电信
初级用户
★
积分 90 发帖 40 注册 2007-04-08 04:50 19年会员 UID 84350 性别 男 来自 广州
状态 离线
第 7 楼
遵循HAT大人的意见,我下次写标题一定注意 -_-!
发表于 2008-10-07 15:53 · 中国 浙江 杭州 电信
初级用户
★
积分 65 发帖 27 注册 2008-08-28 21:14 17年会员 UID 124424 性别 男
状态 离线
第 8 楼
回五楼
发表于 2008-10-08 00:02 · 中国 浙江 杭州 电信
初级用户
★
积分 65 发帖 27 注册 2008-08-28 21:14 17年会员 UID 124424 性别 男
状态 离线
用你贴出的语句执行后,文件名替换OK, 但是都没了扩展名,导致图片无法打开,这个,是? 什么原因?
第 9 楼
Re 8楼
发表于 2008-10-08 01:05 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
ren "%folder%\%%a\%%b" "%%a!index!"
改名的代码就一句而已,自己先尝试一下修改!index!的位置吧。
第 10 楼
re 9楼
发表于 2008-10-08 04:26 · 中国 浙江 杭州 电信
初级用户
★
积分 65 发帖 27 注册 2008-08-28 21:14 17年会员 UID 124424 性别 男
状态 离线
HAT大人,刚才我想了想,发觉应该是这里出的问题 dir /b
dir命令列出的文件是加了后缀名的,而这样就导致改名的时候把后缀也当成文件名抹去了,dos命令里有能列出文件名但是不显示后缀名的命令吗?
第 11 楼
Re 10楼
发表于 2008-10-08 04:51 · 美国 惠普HP
版主
★★★★★
积分 9,023 发帖 5,017 注册 2007-05-31 19:39 19年会员 UID 89899 性别 男
状态 离线
@echo off & SetLocal EnableDelayedExpansion
set folder=G:\test\资料
:: 添加index变量为计数器用
set index=1
for %%a in (英语资料 数学资料 语文资料) do (
for /f "delims=" %%b in ('dir /b "%folder%\%%a"') do (
ren "%folder%\%%a\%%b" "%%a!index!%%b"
set /a index+=1
)
rem 还原index的值:
set index=1
)
第 12 楼
发表于 2009-05-23 05:12 · 中国 江苏 南京 电信
初级用户
★★
积分 62 发帖 62 注册 2007-07-14 14:39 19年会员 UID 93962 性别 男
状态 离线
HAT就是强大啊!许久了回来看看这段代码,仍然是如此的经典,基本功扎实得都板板的了!
第 13 楼
发表于 2010-04-15 20:12 · 中国 福建 泉州 电信
初级用户
★★
积分 152 发帖 63 注册 2005-08-18 22:46 20年会员 UID 41772
状态 离线
如果文件夹不只(英语资料 数学资料 语文资料)这4个,而是任意多个文件夹,这时应该怎么办?
论坛跳转:
— 请选择 —
站务公告 & 版主讨论
意见反馈 & 网友交流
DOS学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正