接《dos 命令总结1 》

9.一个盘有4个文件夹
德语视频 英语视频 日语视频 法语视频
每个文件夹都有好多的视频,名称不一样很乱,想把他们整理一下。
如:
德语视频\323.rm  德语视频\德语学习1.rm
改为
德语视频\deyu-323.rm  德语视频\deyu-德语学习1.rm
求ren批处理。
@echo off
cd /d e:\德语视频
for /f "tokens=*" %%i in ('dir/b *.rm') do move "%%i" "deyu-%%i"
cd /d e:\英语视频
for /f "tokens=*" %%i in ('dir/b *.rm') do move "%%i" "yingyu-%%i"
解释说明:
1)“cd /d e:\德语视频”    //其中/d表示切换当前盘符
2)“dir/b *.rm”    //表示显示当前目录下(不包括子文件夹)所有以rm结尾的文件
3)for的使用,带参时支持 /d /l /r /f四种
不带参例子:
for %%i in (g:\*.bat) do echo %%i    //表示显示G盘下所有以bat结尾的文件(包括路径)
不包括路径呢?只显示文件名?如图所示:
若写for %%i in (g:\*.bat) do echo %%i结果为:

dos 命令总结2_ 参数 

若写for %%i in (*.bat) do echo %%i结果为:若不带盘符表示当前路径,即bat所在目录,下同)

dos 命令总结2_ 参数_02

/d参数说明:只显示当前目录下的目录名字,用于目录搜索,不会搜索文件。
格式说明:for /d %variable in(set) do command [command-parameters]
for /d %%i in (*) do echo %%i      --显示当前路径下的所有目录,不包括子目录。 
for /d %%i in (???) do echo %%i   --显示当前目录下名字只有1-3个字母的目录

/r参数说明:搜索指定路径以及所有子目录中与set相匹配的文件。
格式说明:for /r [[drive:]path] %variable in (set) do command [command-parameters]
 若set中的文件名有通配符(?或*),则列举/R参数指定的目录及其下面的所用子目录中与set相符合的所有文件,无相符文件的目录则不列举。 
 若set中的文件为具体文件名,则枚举该目录树(即列举该目录及其下面的所有子目录)(并在后面加上具体的文件名),而不管set中的指定文件是否存在。
for /r c:\ %%i in (boot.ini) do echo %%i --显示c盘所有目录包括子目录。
for /r d:\backup %%i in (1) do echo %%i  --显示d:\backup下所有目录包括子目录。 

/l参数说明:表示以增量形式从开始到结束的一个数字序列
格式说明:for /l %variable in (start,step,end) do command [command-parameters]
 for /l %%i in (1,1,5) do @echo %%i  --输出1 2 3 4 5 
 for /l %%i in (1,2,10) do @echo %%i  --输出1,3,5,7,9  
 for /l %%i in (100,-20,1) do @echo %%i  --输出100,80,60,40,20 
 for /l %%i in (1,1,5) do start cmd  --打开5个CMD窗口 
 for /l %%i in (1,1,5) do md %%i  --建立从1~5共5个文件夹 
 for /l %%i in (1,1,5) do rd /q %%i  --删除从1~5共5个文件夹


/f参数说明:用来处理文件和一些命令的输出结果
格式说明:
FOR /F ["options"] %variable IN (file-set) DO command [command-parameters]
FOR /F ["options"] %variable IN ("string") DO command [command-parameters]
FOR /F ["options"] %variable IN ('command') DO command [command-parameters]
options为可选参数包括:
eol=c            - 忽略以c开头的行。
skip=n           - 告诉for跳过前n行。
delims=xxx       - 默认的分隔符为空格和制表符;通俗一点将就是分隔符。
tokens=x,y,m-n   - 取哪行数据。
例子参照《批处理读取配置文件并作相应处理》。