接《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结果为:
若写for %%i in (*.bat) do echo %%i结果为:(若不带盘符表示当前路径,即bat所在目录,下同)
/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 - 取哪行数据。
例子参照《批处理读取配置文件并作相应处理》。
本文转自 韬光星夜 51CTO博客,原文链接:http://blog.51cto.com/xfqxj/1075130,如需转载请自行联系原作者