本文介绍下 Windows 系统下怎么批量修改文件的扩展名。
我工作中突然有个需求,有一大堆图片的 URL,我需要将他们都保存到本地。想着这个应该很简单, 找 GPT 写了个脚本。然后因为这些文件都没有扩展名,我用 Powertoys 里的重命名工具尝试了一阵,无法解决。我就又问了一下如何批量修改扩展名。有一说一,有了 GPT,遇到些个机械且重复的工作,搞个脚本解决一下真是舒服。
批量修改文件扩展名
GPT 效率还是高的,一下给了我 3 个系统的解决办法。
Windows 批处理文件
使用 Windows 的批处理文件可以快速批量修改扩展名。以下是一个示例脚本:
@echo off
setlocal enabledelayedexpansion
cd "文件所在的目录"
for %%f in (*.旧扩展名) do (
ren "%%f" "%%~nf.新扩展名"
)
- 将
文件所在的目录
替换为文件的实际路径。 - 将
旧扩展名
和新扩展名
替换为你想要修改的文件扩展名。 - 保存为
.bat
文件并运行即可批量修改扩展名。
这个稍微复杂了点,我记得只要在文件所属文件夹下新建个批处理文件,然后输入 ren *.png *.jpg
就好了。
Linux/MacOS Bash 脚本
如果你在 Linux 或 MacOS 上,你可以使用 bash
脚本来批量修改扩展名。
#!/bin/bash
cd "文件所在的目录"
for file in *.旧扩展名; do
mv -- "$file" "${file%.旧扩展名}.新扩展名"
done
- 替换
文件所在的目录
为文件的路径,替换旧扩展名
和新扩展名
。 - 将脚本保存为
.sh
文件,使用bash 脚本名.sh
来运行。
Python 脚本
import os
directory = "文件所在的目录"
old_extension = ".旧扩展名"
new_extension = ".新扩展名"
for filename in os.listdir(directory):
if filename.endswith(old_extension):
base = os.path.splitext(filename)[0]
new_name = base + new_extension
os.rename(os.path.join(directory, filename), os.path.join(directory, new_name))
没有扩展名的怎么办?
因为这些文件没有扩展名,所以上面的这个又不太试用。我又继续问,GPT 给出了答案。
1. 打开一个记事本,输入以下内容:
@echo off
cd "文件所在的目录"
for %%f in (*) do (
if not "%%~xf"=="" (
echo %%f 已有扩展名,跳过
) else (
ren "%%f" "%%f.jpg"
)
)
2. 将 "文件所在的目录"
替换为你的文件所在的路径,例如 C:\Users\YourName\Desktop\YourFolder
。
3. 将文件保存为 .bat
文件,例如 rename.bat
。
4. 双击运行这个 .bat
文件,它会将该目录下所有没有扩展名的文件重命名为 .jpg
。
这个脚本会检查哪些文件没有扩展名,然后将其重命名为 .jpg 文件。