1、对文件进行批量重命名,作用:直接更改文件后缀。这个d.bat文件可以把乱改文件后缀,慎用。
d.bat内容如下:
cd /d "d:\酷狗\音乐下载"
for /f "usebackq delims==" %%i in (`dir /a-d /b /s *.mp3`) do move "%%i" "%%i.bak" //将所有的mp3文件重命名为 .mp3.bak
for /f "usebackq delims==" %%i in (`dir /a-d /b /s *.exe`) do move "%%i" "%%i.mp3" //将所有的exe文件重命名为 .exe.mp3
for /f "usebackq delims==" %%i in (`dir /a-d /b /s *.rmvb`) do move "%%i" "%%i.exe" //将所有的rmvb文件重命名为 .rmvb.exe
2、对文件进行批量重命名,作用:直接更改文件名,不会改变文件后缀。在整理文件名时有用。
e.bat内容如下:
cd /d "d:\酷狗\音乐下载"
@echo off
setlocal enabledelayedexpansion 【作者注:这里需要开启延迟变量,此东西是windows另外一个批处理难点,比for循环要难。该句意思是:因为批处理执行的时候并不是按照一行一行的代码去执行,而是读取一个代码块来执行。什么是代码块:下面的for循环几行就是代码块,类似的还有if语句等。<<<举例:处理所有mp3文件:>>>从for循环开始到结束,这段时间内,%%a是变量,那么要分别提取文件名和后缀,需要2个变量,这2个变量就必须要开启延迟变量,否则的话只能处理第一个找到的mp3文件。】
REM for %%i in (*.mp3) do echo %%i
REM 【<<<举例:处理所有mp3文件>>>】
for %%a in (*.mp3) do ( 【作者注:for循环代码块:开始】
set name=%%~na 【作者注:只获取mp3文件名,不要后缀】
set ext=%%~xa 【作者注:获取后缀,即mp3】
move "!name!!ext!" "!name:.=!!ext!"
) 【作者注:for循环代码块:结束】
for %%a in (*.wmv) do (
set name=%%~na
set ext=%%~xa
move "!name!!ext!" "!name:[=!!ext!" 【作者注:把所有wmv文件中,删掉文件名中的[这个方括号。】
move "!name!!ext!" "!name:凤凰传奇=!!ext!" 【作者注:把所有wmv文件中,删掉文件名中的"凤凰传奇"。】
)
for %%a in (*.*) do (
set name=%%~na
set ext=%%~xa
move "!name!!ext!" "!name:周杰伦=Jay!!ext!" 【作者注:把所有的文件名中,含有"周杰伦"的都替换为"Jay"】
)
cd /d "E:\照片"
for %%a in (*.jpg) do (
set name=%%~na
set ext=%%~xa
move "!name!!ext!" "!name:IMG_=IMG_2011年10月!!ext!" 【作者注:将所有的jpeg文件,给其文件名加上日期,比如2011年10月,效果如下:】
)
REM IMG_2011年10月_0070.jpg
REM IMG_2011年10月_0076.jpg
REM IMG_2011年10月_0079.jpg
REM IMG_2011年10月_0119.jpg
REM IMG_2011年10月_0120.jpg
REM IMG_2011年10月_0121.jpg