前言
为了实现批量更改文件名的目的,尝试过导入到excel修改名字和cmd脚本批量,最终觉得还是cmd脚本好用,当然本质都是使用cmd命令实现批量编辑
提示:以下是本篇文章正文内容,下面案例可供参考
一、如何使用excel导入文件名进行修改?
参考文章:cmd批量提取文件夹中的文件名
Windows环境下利用CMD命令批量修改文件名
注意:由于Win10 shift+右键打开的是powershell(无法识别dir /b
命令),不是cmd,所以推荐直接在地址栏输入CMD
即可打开cmd
接着就是导出文件名
dir /b *.pdf*>文献统计.csv
把表格中的名字以各种方式批量编辑
常会用到:
1.数据分列:Excel导入的数据如何自动分列
2.文件名目录形成需要
="ren "&A1&" "&B1
3.Excel如何在已有单元格中批量加入固定字符
过于麻烦,不能满足我的需要,我就放弃了
二、CMD脚本批量编辑
1.
代码如下:
@echo off&setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *.wav') do (
if not "%%~ni"=="%~n0" (
if !a! LSS 10 (ren "%%i" "sp0!a!_airport_sn0.wav") else ren "%%i" "sp!a!_airport_sn0.wav"
set/a a+=1
)
)
命令解释:
set a = 1 是设置递增的变量,文件递增或递减的起始值
第三行中括号内 (dir /b .wav)中.wav可以替换成任意可以匹配的字符串,如匹配含有string,且后缀是jpg的文件,则可以(dir /b string.jpg)
第三行是说如果文件名和自己本身一样,则不替换,否则脚本运行时会把自己也更改掉
第五行的if判断是为了统一编号命名,当a小于10时,比如a等于1,则命名时为01;双引号内的“sp0!a!_airport_sn0.wav” 是文件名的命名格式,可以任意替换。
set/a a+=1 ,设置递增变量,也可以设置为递减,或者任意递增递减区间
注意:
请将脚本修改并复制到记事本中,并另存为.bat文件(ren.bat),另存为的时候文件类型选“任何文件”,文件名后缀上加.bat。
务必将此脚本放在需要重命名的文件夹下,就是说此脚本应该要和需要重命名的文件放在同一目录下。
@echo off&setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *.jpg') do (
if not "%%~ni"=="%~n0" (
if !a! LSS 10 (ren "%%i" "car00!a!.jpg") else if !a! LSS 100 (ren "%%i" "car0!a!.jpg") else ren "%%i" "car!a!.jpg"
set/a a+=1
)
)`
@echo off&setlocal EnableDelayedExpansion
set a=445
for /f "delims=" %%i in ('dir /b *.jpg') do (
if not "%%~ni"=="%~n0" (
if !a! LSS 100 (ren "%%i" "00!a!.jpg") else ren "%%i" "!a!.jpg"
set/a a+=1
)
)