【笔记4-1】批处理脚本系列:利用批处理批量更改文件名

利用批处理批量更改文件名

1. 更改文件后缀

利用for循环实现批量更改文件后缀

@echo off
echo 开始更改文件名
set extension=.c
set /a sum=0
for %%m in (*) do (
if not "%%m"=="demo1.bat" (
ren %%m %%m%extension% 
set /a sum=sum+1
)
)
echo 文件改名完毕,一共%sum%个文件被改名
set sum=
set extension=

将上述代码保存在demo1.bat中,并将要改名的文件和bat放置于同一个文件夹中

代码解析:

  • 1.定义了extension变量用于保存扩展名.c
  • 2.定义sum变量用于计数,/a不能省略,表示sum是数值类型变量
  • 3.for 循环用于处理当前目录下每一个文件“*”代表当前目录下的所有文件,“%%m”代表具体的某一一个文件,
    每次循环时“%%m”所代表的文件都不一样。 for循环的次数取决于当前文件夹下文件的总数。
  • 4.利用“ren"命令修改文件名。对于新文件名“%%m%extension%",“%%m”表示文件名,“%extension%"表示扩展名“.c”。
  • 5.最后两行,删除变量**
  • 6.注意选择的文件名不能带有空格

运行结果:
改名前:

【笔记4-1】批处理脚本系列:利用批处理批量更改文件名_第1张图片
改名后:
【笔记4-1】批处理脚本系列:利用批处理批量更改文件名_第2张图片
【笔记4-1】批处理脚本系列:利用批处理批量更改文件名_第3张图片

2.拓展:在文件名前加序号

@echo off
setlocal EnableDelayedExpansion
echo 开始更改文件名.....
set extension=.c
set  /a sum=0

for %%m in (*) do (
if not "%%m"=="demo1.bat" (
ren %%m !sum!%%m
set  /a sum=!sum!+1
)
)
echo 文件改名完毕,一共有%sum%个文件被改名!
set sum =
set extension=

代码解析:

  • 代码整体大致与改后缀名代码相同
  • setlocal EnableDelayedExpansion是延迟环境变量拓展,大概意思是在for循环中无法及时更新变量,详情参考延迟环境变量拓展
    感谢大佬的讲解
  • 注意选择的文件名不能带有空格

运行结果:
改名前:

【笔记4-1】批处理脚本系列:利用批处理批量更改文件名_第4张图片
改名后:
在这里插入图片描述
【笔记4-1】批处理脚本系列:利用批处理批量更改文件名_第5张图片

你可能感兴趣的:(批处理文件,cmd)