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