标题: 这种改名要求能否实现:根据父文件夹重命名文件
[打印本页]
作者: 666cool
时间: 2008-10-6 15:33
标题: 这种改名要求能否实现:根据父文件夹重命名文件
:
比如我有一个文件夹名字为 资料,
里面又有其他的文件夹,比如说有 英语资料,数学资料,语文资料 三个文件夹;
而每个文件夹里又有很多文档、图片之类的文件。
能否实现批量 英语资料文件夹里所有文件名以英语资料开头, 语文资料文件夹里所有文件名以语文资料开头,数学资料文件夹里所有文件以数学资料开头 。
───────────────── 版务记录 ─────────────────
执行:HAT
操作:2008-10-07在帖子标题中增加搜索关键字
说明:原标题"如果是这种批处理改名要求批处理能否实现"不利于论坛搜索
处罚:扣除2点积分
提示:建议阅读以下帖子
{1415}提问的智慧
{7326}论坛新手必读,所有人的基本行为准则
{22703}请不要做浮躁的人
{32667}[愤怒]那些连标题都写不清楚的人们啊,你们醒醒吧
{32825}本版严厉整顿烂帖
───────────────── 版务记录 ─────────────────
[
Last edited by HAT on 2008-10-7 at 01:49 ]
作者: tireless
时间: 2008-10-6 16:16
@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"
)
)
作者: 516526966
时间: 2008-10-6 16:34
高手就是不一样啊。
作者: 666cool
时间: 2008-10-6 22:51
标题: 回2楼
先赞一个啊
如果是不仅要把里面的文件以文件夹的名字做开头,而且还能自动排序呢?
比如数学资料文件夹里所有文件以数学资料开头 并且
为 数学资料1 ,数学资料2 ,数学资料3 依次类推 把原有的文件名称都这样替换掉,命令如何写?
作者: lxmxn
时间: 2008-10-7 10:37
Quote: |
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
)
作者: xinhepc
时间: 2008-10-7 13:16
写得好呀,高手就是不一样.呵呵
作者: 666cool
时间: 2008-10-7 15:53
标题: 遵循HAT大人的意见,我下次写标题一定注意 -_-!
我知错 O(∩_∩)O~
作者: 666cool
时间: 2008-10-8 00:02
标题: 回五楼
用你贴出的语句执行后,文件名替换OK, 但是都没了扩展名,导致图片无法打开,这个,是? 什么原因?
作者: HAT
时间: 2008-10-8 01:05
标题: Re 8楼
ren "%folder%\%%a\%%b" "%%a!index!"
改名的代码就一句而已,自己先尝试一下修改!index!的位置吧。
作者: 666cool
时间: 2008-10-8 04:26
标题: re 9楼
HAT大人,刚才我想了想,发觉应该是这里出的问题 dir /b
dir命令列出的文件是加了后缀名的,而这样就导致改名的时候把后缀也当成文件名抹去了,dos命令里有能列出文件名但是不显示后缀名的命令吗?
作者: HAT
时间: 2008-10-8 04:51
标题: Re 10楼
@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
)
作者: pkto
时间: 2009-5-23 05:12
HAT就是强大啊!许久了回来看看这段代码,仍然是如此的经典,基本功扎实得都板板的了!
作者: su2353
时间: 2010-4-15 20:12
如果文件夹不只(英语资料 数学资料 语文资料)这4个,而是任意多个文件夹,这时应该怎么办?