本文目录导读:

Windows (批处理)
将所有扩展名改为小写
@echo off
setlocal enabledelayedexpansion
echo 正在将扩展名改为小写...
for %%f in (*.*) do (
set "filename=%%~nf"
set "ext=%%~xf"
if not "!ext!"=="" (
set "ext=!ext: =!" REM 去除空格
if "!ext!"=="!ext!" (
for %%i in (!ext!) do set "ext=%%i"
)
set "newext=!ext!"
for %%l in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
set "newext=!newext:%%l=%%l!"
)
if not "!ext!"=="!newext!" (
ren "%%f" "!filename!!newext!"
echo 已修改: %%f -^> !filename!!newext!
)
)
)
echo 完成!
pause
将所有扩展名改为大写
@echo off
setlocal enabledelayedexpansion
echo 正在将扩展名改为大写...
for %%f in (*.*) do (
set "filename=%%~nf"
set "ext=%%~xf"
if not "!ext!"=="" (
set "newext=!ext!"
for %%l in (a b c d e f g h i j k l m n o p q r s t u v w x y z) do (
set "newext=!newext:%%l=%%l!"
)
if not "!ext!"=="!newext!" (
ren "%%f" "!filename!!newext!"
echo 已修改: %%f -^> !filename!!newext!
)
)
)
echo 完成!
pause
Python (跨平台)
import os
import tkinter as tk
from tkinter import filedialog, messagebox
def batch_rename_extensions(directory, to_upper=False):
"""批量修改文件扩展名大小写"""
renamed_count = 0
for filename in os.listdir(directory):
file_path = os.path.join(directory, filename)
# 跳过目录
if os.path.isdir(file_path):
continue
# 分离文件名和扩展名
name, ext = os.path.splitext(filename)
if ext: # 如果有扩展名
# 转换大小写
new_ext = ext.upper() if to_upper else ext.lower()
# 如果扩展名改变了
if new_ext != ext:
new_filename = name + new_ext
new_path = os.path.join(directory, new_filename)
try:
os.rename(file_path, new_path)
print(f"已修改: {filename} -> {new_filename}")
renamed_count += 1
except Exception as e:
print(f"修改失败 {filename}: {e}")
return renamed_count
def main():
# 创建简单GUI
root = tk.Tk()
root.withdraw() # 隐藏主窗口
# 选择文件夹
directory = filedialog.askdirectory(title="选择要处理的文件夹")
if not directory:
return
# 选择转换方向
choice = messagebox.askyesno("选择操作", "是否改为大写?(点击'是'改为大写,'否'改为小写)")
if choice:
print("正在将所有扩展名改为大写...")
count = batch_rename_extensions(directory, to_upper=True)
messagebox.showinfo("完成", f"已修改 {count} 个文件的扩展名(改为大写)")
else:
print("正在将所有扩展名改为小写...")
count = batch_rename_extensions(directory, to_upper=False)
messagebox.showinfo("完成", f"已修改 {count} 个文件的扩展名(改为小写)")
if __name__ == "__main__":
main()
Linux/Mac (Bash)
将所有扩展名改为小写
#!/bin/bash
echo "正在将扩展名改为小写..."
for file in *.*; do
if [ -f "$file" ]; then
filename="${file%.*}"
ext="${file##*.}"
# 转换为小写
new_ext="${ext,,}"
if [ "$ext" != "$new_ext" ]; then
new_file="${filename}.${new_ext}"
mv "$file" "$new_file"
echo "已修改: $file -> $new_file"
fi
fi
done
echo "完成!"
将所有扩展名改为大写
#!/bin/bash
echo "正在将扩展名改为大写..."
for file in *.*; do
if [ -f "$file" ]; then
filename="${file%.*}"
ext="${file##*.}"
# 转换为大写
new_ext="${ext^^}"
if [ "$ext" != "$new_ext" ]; then
new_file="${filename}.${new_ext}"
mv "$file" "$new_file"
echo "已修改: $file -> $new_file"
fi
fi
done
echo "完成!"
PowerShell (Windows)
# 将所有扩展名改为小写
Get-ChildItem -File | ForEach-Object {
$oldName = $_.Name
$newName = $_.BaseName + $_.Extension.ToLower()
if ($oldName -ne $newName) {
Rename-Item -Path $_.FullName -NewName $newName
Write-Host "已修改: $oldName -> $newName"
}
}
Write-Host "完成!"
使用说明
Python版本(推荐):
- 安装Python(如果未安装)
- 保存代码为
rename_ext.py - 运行:
python rename_ext.py - 选择文件夹,选择转换方向
Windows批处理:
- 保存为
.bat文件 - 放在要处理的文件夹中运行
- 或放入系统路径中全局使用
Linux/Mac:
- 保存脚本文件
- 赋予执行权限:
chmod +x script.sh - 在目标文件夹中运行:
./script.sh
PowerShell:
- 在要处理的文件夹中打开PowerShell
- 直接运行脚本代码
注意事项
⚠️ 警告:
- 备份数据:运行前请备份重要文件
- 测试运行:先在测试文件夹中试用
- 文件名冲突:注意可能存在的文件名冲突(如
file.txt和file.TXT) - 递归处理:以上脚本默认只处理当前文件夹,如需递归需修改参数
功能扩展
如果需要在子文件夹中递归处理,可以修改脚本:
Python递归版本
def batch_rename_extensions_recursive(directory, to_upper=False):
for root, dirs, files in os.walk(directory):
for filename in files:
name, ext = os.path.splitext(filename)
if ext:
new_ext = ext.upper() if to_upper else ext.lower()
if new_ext != ext:
old_path = os.path.join(root, filename)
new_path = os.path.join(root, name + new_ext)
os.rename(old_path, new_path)
根据需要选择合适的脚本使用!