windows下cmd批量替换同名前缀文件名 迈不过友情╰ 2023-01-12 01:49 442阅读 0赞 在批量修改文件名的时候,在windows下,如果文件多的话,使用bash命令是最好的方式。 修改方式: 1、在修改文件的同目录下,新建文件——修改文件后缀为.cmd格式。 2、创建脚本。 脚本内容 @echo off for /f "delims=" %%a in ('dir/b/s/a-d *[匹配的内容]*') do ( set "str=%%~nxa" setlocal enabledelayedexpansion ren "%%a" "!str:~5!" endlocal ) pause 脚本说明: for循环 # 循环读取内容 for /f %%a in ('') do ( ) # for 中常见的一些参数可以参考下 最常见的是/f /r这些。 # /f是循环文件内容 # /r 是循环目录 dir/b/s/a-d \*\[匹配的内容\]\* dir/b/s/a-d *[匹配的内容]* dir # 查找目录显示 # dir 常用参数说明 /A 显示具有指定属性的文件。 属性 D 目录 R 只读文件 H 隐藏文件 A 准备存档的文件 S 系统文件 I 无内容索引文件 L 重新分析点 O 脱机文件 - 表示“否”的前缀 /B 使用空格式(没有标题信息或摘要)。 /C 在文件大小中显示千位数分隔符。这是默认值。用 /-C 来 禁用分隔符显示。 /D 跟宽式相同,但文件是按栏分类列出的。 /L 用小写。 /N 新的长列表格式,其中文件名在最右边。 /O 用分类顺序列出文件。 排列顺序 N 按名称(字母顺序) S 按大小(从小到大) E 按扩展名(字母顺序) D 按日期/时间(从先到后) G 组目录优先 - 反转顺序的前缀 /P 在每个信息屏幕后暂停。 /Q 显示文件所有者。 /R 显示文件的备用数据流。 /S 显示指定目录和所有子目录中的文件。 delims delims #用来进行分割的 for循环中语句讲解: # 将当前变量 a赋值给str(后面要用的) set "str=%%~nxa" # 设置本地延迟变量(防止串行,这个是bash的机制导致的) setlocal enabledelayedexpansion # 替换 ren 命令将前面的替换成后面的 # 说明 ~5这个是截取字符串用的。根据当前需要替换的字段的长度控制的,这个长度不区分中英文 # 5 说明是从第6个字符位置算的。下标0开始。 ren "%%a" "!str:~5!" endlocal OK,现在双击当前脚本就可以执行替换了。
还没有评论,来说两句吧...