欢迎光临
我们一直在努力

如何批量去除/替换文件名中的某些字符串?

一、可以用软件实现,百度/360搜索 “更名器”,如:拖把更名器、菲菲更名宝贝等。

个人之前就用菲菲更名宝贝,但每次都需要启动软件,贴入文件夹路径,载入文件夹内文件,再选择功能,再输入替换前后文字,有点麻烦。

二、后来改用批处理,发现更简单、丝滑,而且纯代码更安全,所以就偏爱上了,一直沿用至今。

批处理代码如下:

@echo off
set /p str1= 请输入要替换的文件(文件夹)名字符串(可替换空格):
set /p str2= 请输入替换后的文件(文件夹)名字符串(去除则直接回车):
echo.
echo 正在修改文件(夹)名中,请稍候……
for /f "delims=" %%a in ('dir /s /b ^|sort /+65535') do (
if "%%~nxa" neq "%~nx0" (
set "file=%%a"
set "name=%%~na"
set "extension=%%~xa"
call set "name=%%name:%str1%=%str2%%%"
setlocal enabledelayedexpansion
ren "!file!" "!name!!extension!" 2>nul
endlocal
)
)
exit

1、在电脑上新建文本文件:

2、将以上代码复制到文本里面,保存,更改文件名为(文件扩展名也改):

PS: .bat是更改后的文件扩展名

3、将这个批处理文件放到你要批量更改文件的文件夹内

4、点击运行,输入更改前后的字符比如“+8.23”:

5、第二行直接回车后,就完成了,(“+8.23”被批量删除了):

速度比用工具软件更快一些:少了启动软件,复制和贴入文件夹路径,加载文件夹内文件和选择选项的时间。

扩展:这个也可用来替换字符,在第二行时输入替换后的字符如“+8.24”:

回车,就完成了替换了(+8.23批量替换成+8.24了):

也可以同步修改所有子文件夹名称,以及所有子文件夹内的文件名。

4.18更新:

有朋友问我:这个批处理要放在某文件夹才能用,能不能改为输入指定文件夹路径呢?

当然是可以的!代码如下:

@echo off
set /p loc= 请输入所要操作的文件夹路径:
set /p str1= 请输入要替换的文件(文件夹)名字符串(可替换空格):
set /p str2= 请输入替换后的文件(文件夹)名字符串(去除则直接回车):
echo.
echo 正在修改文件(夹)名中,请稍候……
for /f "delims=" %%a in ('dir "%loc%" /s /b ^|sort /+65535') do (
if "%%~nxa" neq "%~nx0" (
set "file=%%a"
set "name=%%~na"
set "extension=%%~xa"
call set "name=%%name:%str1%=%str2%%%"
setlocal enabledelayedexpansion
ren "!file!" "!name!!extension!" 2>nul
endlocal
)
)
exit

文件名保存为 批量修改或去除文件夹下的文件(夹)名中字符串.bat 即可。

赞(0)
任何个人或团体,未经允许禁止转载本文:微客网络 » 如何批量去除/替换文件名中的某些字符串?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

微客网络

真的勇士永不止步