Board logo

标题: 求助 [打印本页]

作者: zhuzhu818     时间: 2007-2-6 09:34    标题: 求助

for /l %a in (1,1,5) do @ren

然后改名字,比如我有5张图片

名字分别是:
qwe.bmp
asd.bmp
zxc.bmp
rty.bmp
asddfgfh.bmp

无论是什么名字都好...都要改成:
1.bmp
2.bmp
3.bmp
4.bmp
5.bmp
希望大家给我点提示,谢谢
作者: redtek     时间: 2007-2-6 10:20

@echo off
setlocal enabledelayedexpansion


for /f %%i in ('dir /b /a-d *.bmp') do (

        set /a n+=1
        ren "%%i" "!n!.bmp"
)


dir /b /a-d *.bmp
pause

作者: zhuzhu818     时间: 2007-2-6 10:30
redtek谢谢你!!

能把你的批处理加注释吗????谢谢..有些我不太懂
作者: redtek     时间: 2007-2-6 10:54
dir /b /a-d *.bmp

列所有.bmp的文件,但 DIR /B 的参数:只显示文件名,不显示其它附加内容(如文件长度、日期等)。

DIR /a-d 参数是只列出文件,不列目录。(因为如果硬盘上有一个名为 “abc.bmp” 的目录,那么 dir *.bmp 也会将这个目录列出来)



setlocal enabledelayedexpansion

延迟变量,详细说明使用论坛搜索功能输入“延迟变量”(主要是几句话很解释清楚:)



set /a n+=1

相当于  SET  N=N+1 ,即变量N每次递增1。



ren "%%i" "!n!.bmp"

改名,%%i 是 for 命令依次提取的不同的文件名(枚举所有*.bmp 文件)的名字。
!n!.bmp ,双!号中间的变量N是动态变化的,每次执行这条指令时N都会递增1,所以是更名为 1.bmp ...一直到 5.bmp(直到 for 把所有 .bmp 文件取光为止)



其它更多内容可以查阅下面帖子以及检索相应内容~:)

http://www.cn-dos.net/forum/view ... 5%E7%B4%A2%E5%BC%95

[ Last edited by redtek on 2007-2-5 at 09:55 PM ]
作者: zhuzhu818     时间: 2007-2-6 11:23
redtek我还想请教一个问题!!(已解决)

如果做到每重启一次就换一张墙纸???(已解决)

注册表读取路径是d:\bak\Wallpaper.bmp(已解决)

[ Last edited by zhuzhu818 on 2007-2-5 at 10:37 PM ]
作者: gxsanhen     时间: 2007-2-6 12:42
唉。DOS原来要学的东西还是这么多的啊。
作者: anqing     时间: 2007-2-7 01:10
向r兄学习