批处理bat批量修改文件名的实例代码

发布时间:2020-03-26编辑:脚本学堂
本文介绍下,使用批处理命令与脚本批量修改文件名的几个例子,有研究批处理的朋友,参考学习下吧。

1,bat重命名文件
ren aaa.txt bbb.doc
将 aaa.txt 命名为 bbb.doc
 
2,循环重命名一个文件夹下的所有结尾为xls的文件,前加上A_
for /f %%i in ('dir /b *.xls') do (ren %%i A_%%i)
 
3,在原文件名前面加当前系统日期格式yyyyMMdd
 

复制代码 代码示例:
@echo off
for /f "tokens=1,2,3 delims=- " %%a in ('date /t') do set day=%%a%%b%%c
for /f %%i in ('dir /b *.txt') do (ren %%i %day%%%i)

解释:
tokens=1,2,3 delims=-  以‘-’为分隔符,将当前日期截取为三部分,分别付给a,b,c,
设置day变量为截取到的三部分的结合,set day=%%a%%b%%c,即day=格式为yyyyMMdd的当天日期
循环修改同一目录下的文件名,*.txt的都会被修改; i为原文件名。

批处理for语句的用法,请参考如下的文章:
批处理for语句 文本解析显神威
批处理教程之FOR的参数/D和/R用法
批处理教程之FOR的参数/F之delims详解
批处理之FOR参数/F与eol、skip的用法
批处理for命令详解
批处理for 命令 /f 参数详解
for语句用法
 

4,现有一堆照片,命名格式为0001.jpg,0002.jpg,0003.jpg,…,00020.jpg,……
要求在所有文件名前加上A_
 

复制代码 代码示例:
@echo off
rem 启用"延缓环境变量扩充"
setlocal EnableDelayedExpansion
set a=1
rem 循环当前目录下所有图片的文件名,支持带空格的名称
for /f "delims=" %%i in ('dir /b *.jpg') do (
rem 如果没有相同的文件名,则继续
if not "%%~ni"=="%~n0" (
if !a! LSS 10 (ren "%%i" "A_000!a!.jpg") else ren "%%i" "A_!a!.jpg"
rem 设置数值型变量a=a+1
set /a a+=1
)
)
echo 批量重命名完成!
pause