欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

批处理:批量修改文件名称

程序员文章站 2022-04-17 14:05:06
...

相关代码

@echo off
setlocal enabledelayedexpansion
echo "输入需要修改的文件集合,支持通配符?匹配单个字符*匹配任意字符"
set /p targetSet=文件集:
echo "新的名称(^!n^!为索引,从1开始)"
set /p newName=新名称:
set n=0
for %%i in (%targetSet%) do ( set /a n+=1 & ren "%%i" %newName%)

学习笔记

for命令

对一组文件中的每一个文件执行某个特定命令。

FOR %variable IN (set) DO command [command-parameters]

  %variable  指定一个单一字母可替换的参数。
  (set)      指定一个或一组文件。可以使用通配符。
  command    指定对每个文件执行的命令。
  command-parameters
             为特定命令指定参数或命令行开关。

set命令

显示、设置或删除 cmd.exe 环境变量。

SET [variable=[string]]

  variable  指定环境变量名。
  string    指定要指派给变量的一系列字符串。

set /a 与 set /p

SET /A expression
/A 命令行开关指定等号右边的字符串为被评估的数字表达式。

SET /P variable=[promptString]
/P 命令行开关允许将变量数值设成用户输入的一行输入。读取输入
行之前,显示指定的 promptString。promptString 可以是空的。

!var!与%var%

%var% 
引用变量将在批处理程序启动时,用var对应的值替换%var%字符串,随后开始执行命令行,
效果上看,类似C语言的#define,即尽在初始化时赋值一次

!var! 引用变量,将在每次调用命令行时,命令行执行前对字符串进行替换,
效果上看,更符合认知里的变量,随程序动态更新的

setlocal enabledelayedexpansion

启动对!var!的支持,默认是不支持的