如何批量重命名文件后缀,一个脚本搞定

在某些情况下,我们可能需要批量重命名文件的扩展名,例如将所有 .txt 文件改为 .md。本文将详细介绍如何使用批处理文件(.bat)和Shell脚本来实现这个目标,包括详细的步骤和用户交互提示。

批处理文件实现

我们将编写一个批处理脚本(.bat),它会一步步引导用户完成批量重命名文件扩展名的任务。

1. 创建批处理文件

创建一个名为 rename_extension.bat 的文件,并将以下内容复制到其中:

Terminal window
1
@echo off
2
chcp 65001 > nul
3
setlocal enabledelayedexpansion
4
5
rem 第一步:提示用户输入要修改的目录
6
set "dir="
7
set /p dir="请输入要修改的目录: "
8
if not exist "%dir%" (
9
echo 目录不存在!
10
exit /b
11
)
12
13
rem 第二步:询问用户是否包括所有子目录
14
set "include_subdirs="
15
set /p include_subdirs="是否包括所有子目录? (y/n): "
16
17
rem 第三步:提示用户输入原始后缀名和新的后缀名
18
set "orig_ext="
19
set /p orig_ext="请输入原始文件后缀名(不带点): "
20
set "new_ext="
21
set /p new_ext="请输入新的文件后缀名(不带点): "
22
23
rem 第四步:执行重命名操作
24
if /i "%include_subdirs%"=="y" (
25
rem 包括子目录
26
for /r "%dir%" %%f in (*.%orig_ext%) do (
27
set "filepath=%%f"
28
ren "%%f" "%%~nf.%new_ext%"
29
)
30
) else (
31
rem 不包括子目录
32
for %%f in ("%dir%\*.%orig_ext%") do (
33
set "filepath=%%f"
34
ren "%%f" "%%~nf.%new_ext%"
35
)
36
)
37
38
echo 所有匹配的文件已重命名。
39
pause

2. 运行批处理文件

双击 rename_extension.bat 文件,按照提示输入相应的信息,即可批量重命名指定目录下的文件扩展名。

Shell脚本实现

我们将编写一个Shell脚本(.sh),它会一步步引导用户完成批量重命名文件扩展名的任务。

1. 创建Shell脚本

创建一个名为 rename_extension.sh 的文件,并将以下内容复制到其中:

1
#!/bin/bash
2
3
# 第一步:提示用户输入要修改的目录
4
read -p "请输入要修改的目录: " dir
5
if [ ! -d "$dir" ]; then
6
echo "目录不存在!"
7
exit 1
8
fi
9
10
# 第二步:询问用户是否包括所有子目录
11
read -p "是否包括所有子目录? (y/n): " include_subdirs
12
13
# 第三步:提示用户输入原始后缀名和新的后缀名
14
read -p "请输入原始文件后缀名(不带点): " orig_ext
15
read -p "请输入新的文件后缀名(不带点): " new_ext
16
17
# 第四步:执行重命名操作
18
if [ "$include_subdirs" = "y" ] || [ "$include_subdirs" = "Y" ]; then
19
# 包括子目录
20
find "$dir" -type f -name "*.$orig_ext" -exec bash -c 'mv "$0" "${0%.*}.'$new_ext'"' {} \;
21
else
22
# 不包括子目录
23
find "$dir" -maxdepth 1 -type f -name "*.$orig_ext" -exec bash -c 'mv "$0" "${0%.*}.'$new_ext'"' {} \;
24
fi
25
26
echo "所有匹配的文件已重命名。"

2. 赋予脚本执行权限

在终端中运行以下命令,为脚本赋予执行权限:

Terminal window
1
chmod +x rename_extension.sh

3. 运行Shell脚本

在终端中运行以下命令,按照提示输入相应的信息,即可批量重命名指定目录下的文件扩展名:

Terminal window
1
./rename_extension.sh

总结

本文介绍了如何使用批处理文件(.bat)和Shell脚本批量重命名文件扩展名,并提供了详细的步骤和用户交互提示。通过这些脚本,我们可以轻松地批量修改文件扩展名,提高工作效率。

美团外卖红包 饿了么红包 支付宝红包