📣读完这篇文章里你能收获到
- 📝学会如何使用Windows批处理脚本批量处理文件名,轻松去除不需要的字符。
- 🔧了解如何通过字符串替换功能,动态修改文件名,同时保留文件扩展名。
前言
在日常工作中,我们常常会遇到需要批量处理文件名的情况,比如批量删除文件名中的特定字符或模式。对于Windows用户来说,批处理脚本(.bat)是一个简单而强大的工具,可以帮助我们快速完成这类任务。本文将介绍如何使用批处理脚本批量替换文件夹中所有子文件夹内的文件名,以去除特定的模式。
一、脚本需求
假设我们有一个文件夹,其中包含多个子文件夹和文件,文件名中包含一些不需要的文本。我们需要批量移除这些文本,同时保留文件的扩展名。
二、创建批处理脚本
1. 打开记事本
首先,你需要一个文本编辑器来创建批处理脚本。Windows自带的记事本是一个很好的选择。打开记事本后,你可以开始编写脚本。
2. 编写脚本
将以下代码复制到记事本中。这是我们的批处理脚本,用于批量替换文件夹中子文件名中的特定模式。
需要手动替换:
- targetDir:需要处理的的文件夹(由于会遍历底下全部子文件夹的最底层子文件,不建议取太大的文件夹)
- patterns:需要移除的关键词
@echo off
setlocal enabledelayedexpansion
:: 直接设定目标文件夹路径
set "targetDir=C:\你的文件目录"
echo **********目标目录: %targetDir%**********
:: 定义模式列表(有多个的话通过空格分割)
set "patterns=待移除关键词1"
echo **********移除匹配项: %patterns%**********
:: 遍历所有文件并重命名
for /r "%targetDir%" %%f in (*) do (
set "fileDir=%%~dpf"
:: 如果进入了新的子文件夹,则打印子文件夹路径
if not "!fileDir!"=="!currentDir!" (
echo 正在处理文件夹: !fileDir!
set "currentDir=%%~dpf"
)
set "fileName=%%~nxf"
set "fileExt=%%~xf"
set "newName=%%~nf"
for %%p in (%patterns%) do (
:: 替换模式为""
set "newName=!newName:%%p=!"
)
:: 如果名字发生了变化,则重命名,同时保留原扩展名
if not "!fileName!"=="!newName!!fileExt!" (
echo "!newName!!fileExt!"
ren "%%f" "!newName!!fileExt!"
)
)
echo **********操作完成**********
pause
3. 保存文件
将文件保存为.bat
扩展名。例如,你可以将文件命名为rename_files.bat
。保存时,确保选择“所有文件”作为文件类型,并在文件名中包含.bat
扩展名。
三、运行脚本
双击.bat
文件运行脚本。脚本会自动遍历目标文件夹及其子文件夹中的所有文件,并替换文件名中的指定模式。
- 将上述代码复制到一个文本文件中,保存为
.bat
扩展名,例如rename_files.bat
。 - 双击运行该脚本,或者在命令行中运行。
- 脚本会自动遍历目标目录及其子目录中的所有文件,并移除指定的模式。
四、扩展应用
如果需要替换多个模式,可以将%patterns%
变量的值设置为一个由空格分隔的字符串,例如:
set "patterns=关键词1 关键词2 关键词3"
然后脚本会依次移除这些模式。
五、总结
通过简单的批处理脚本,可以轻松实现批量替换文件名的功能,节省大量手动操作的时间。希望本文的介绍对你有所帮助。如果你有其他需求或遇到问题,欢迎在评论区留言,我会尽力解答。