@echo off
echo.&echo.
echo 说明:
echo.
echo 使用本bat文件可批量替换本文件所在文件夹下的所有文件名的相同字符
echo.
echo 如果输入与扩展名相关字母或符号,可以修改指定文件的文件类型!
echo.&echo.&echo.&echo.&echo.&echo.
echo.&set /p renname3= 请输入被替换文件名字符的文件扩展名:
echo.&set /p renname1= 请输入被替换的文件名字符(可替换空格):
echo.&set /p renname2= 请输入替换后的文件名字符(删除则直接回车):
setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /a /b *.%renname3%') do (
set hcy=%%a
ren "%%~a" "!hcy:%renname1%=%renname2%!")
echo.&echo.&echo.&echo.&echo 替换成功
pause
============================================================================
*/?
批量修改同一文件夹下文件名 格式:
ren *.原 *.改
批量修改文件名 包括子目录 格式:
for /f "delims=" %i in ('dir /ad/s/b') do ren "%i"\*.原 *.改
从数字1递增批量重命名ren.bat:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set /A num=0
FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do (
IF NOT "%%i"=="%~n0%~x0" (
set /A num+=1
ren "%%i" "!num!%%~xi"
)
)
ENDLOCAL
exit
按00001这类格式递增批量重命名ren.bat:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set /A num=0
FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do (
IF NOT "%%i"=="%~n0%~x0" (
set /A num+=1
if !num! LSS 10 (
ren "%%i" 0000!num!%%~xi
) ELSE (
if !num! LSS 100 (
ren "%%i" 000!num!%%~xi
) ELSE (
if !num! LSS 1000 (
ren "%%i" 00!num!%%~xi
) ELSE (
if !num! LSS 10000 ren "%%i" 0!num!%%~xi
)
)
)
)
)
ENDLOCAL
exit
如果觉得0多了,可以用下面的批处理来去掉,默认是去1个,要去多少个就
把!name:~1!中的数字1改成要去的个数,改这个批处理要比改前面的批处理
方便一些,所以写了这个用:
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
set name=
FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do (
IF NOT "%%i"=="%~n0%~x0" (
set name=%%i
set name=!name:~1!
ren "%%i" "!name!"
)
)
ENDLOCAL
exit
上面的批处理要和文件放在一个目录里,命名后删除批处理文件即可。
直接使用dir的话,缺点是重命名的时候把批处理本身及子文件夹也改名了,而且
所得文件名字不能连续排序(批处理文件可能占了中间某个序号),因此用dir参
数进行排除文件夹内的子文件夹以及排序(排序目的就是把批处理排到最后)。
还有就是重名现象不好解决,如果原来已经含有一个重命名后可能会出现的名称,
名称被占用了程序就不能继续运行。可以事先用系统的重命名功能命名一次,方
法是选择要重命名的所有文件,Ctrl+a或者选择第一个再按住Shift不放,再选最
后一个进行连续选择,右键点击其中一个文件,选择重命名,然后随便写一个名
字,你将看到系统的批量命名是以括号内数字递增的。
排序参数的说明:
下面这行
FOR /F "tokens=*" %%i in ('dir /A-D /B /OD /TC') do (
中的/OD参数是按时间排序,使用的时候把批处理文件复制到文件夹里,那么批处
理文件的创建时间就是最后的了,解决了文件连续的问题。
如果用/O-E也可以,这样也能使批处理文件排在最后(扩展名是bat,b的优先级高,
用-号来颠倒顺序)。
/OD后再加/TC更准确些。
dir中/O和/T参数的说明:
/O 用分类顺序列出文件。
sortorder N 按名称(字母顺序) S 按大小(从小到大)
E 按扩展名(字母顺序) D 按日期/时间(从先到后)
G 组目录优先 - 颠倒顺序的前缀
/T 控制显示或用来分类的时间字符域。
timefield C 创建时间
A 上次访问时间
W 上次写入的时间
for会自动去掉空行的,所以参数肯定不为空。
Update: 2009/12/18
从数字1递增批量重命名ren.bat这个如果改用shell的就简便多了:
#!/bin/csh
n=0
foreach file (`ls`)
@ n += 1
mv $file $n
end
可以把文件都改成0到**的,有多少改多少。
相关资料
http://blog.csdn.net/mystudy2000/article/details/7162821
http://wenwen.soso.com/z/q163618855.htm
http://hi.baidu.com/253525306/blog/item/42ee3acf61d5ec1e01e92835.html
分享到:
相关推荐
批量修改扩展名(后缀名),用记事本打开BAT文件,“flac”为原文件的扩展名,“mp3”为需要的扩展名。把文件保存,放到要批量修改文件的文件夹中执行。
linux平台批量修改后缀名shell代码,采用for语句实现
搜规范文件扩展名后缀名批量修改器是一款支持批量修改文件扩展名后缀名的应用软件,支持批量剪切移动文件。 基本简介 当你下载片片的时候,很多为种子下载。这些下载后包含了很多文件夹,而你只想要文件夹里边的...
扩展名批量修改工具扩展名批量修改工具扩展名批量修改工具扩展名批量修改工具扩展名批量修改工具扩展名批量修改工具扩展名批量修改工具扩展名批量修改工具扩展名批量修改工具扩展名批量修改工具扩展名批量修改工具...
一款小程序,可批量修改扩展名,有意者者可试试……
批量更改文件名工具 V1.0 版本,内置批量更改文件名,批量更改文件名中指定字符,批量更改扩展名三个功能。 软件适用于windows7/10版本。 无需安装,打开即用。 使用说明: 1.使用时,选择指定目录,目录下的文件名...
批量文件后缀名修改工具,批量修改文件名很方便!
文件后缀名扩展名批量修改v.7.0.exe 批量快速扩展名批量修改,不错的小软件!
批量修改后缀名 Bulk Rename Utility win7 完美用
要一个一个修改扩展名太麻烦,然后利用DOS命令实现了批量修改。为了以后常用就随手写了个程序。没有技术含量,之所以收1分纯粹是属于想多赚点积分。大家见谅。。汗。其实直接用DOS命令同样可以实现。
批量修改文件名 后缀名 这款比较好用 特此推荐给大家
ren *.pdf *.mp4
VS2008做的批量修改文件的后缀名;可以参考这个做批量删除文件、批量替换文件;
易语言批量修改文件后缀源码。@3012282767。
批量修改文件名包括后缀名 很好的批量修改文件名包括后缀名工具
批量修改文件名(也可批量修改后缀)的小工具,c#制作;需要先安装.net framwork2.0或以上
android的一个小工具,可以批量修改指定目录中文件的后缀名,可以任意指定后缀名。很恶趣味的一个工具
.net4.0 wpf写的批量修改扩展名的小工具,有需要的朋友可以下载使用。