You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批量重命名脚本需求:还原URL编码的文件及文件夹名称

递归还原URL编码的文件/文件夹名称

PowerShell 脚本方案(推荐,更简单可靠)

这个脚本会递归遍历指定目录(默认是脚本所在目录),将所有文件和文件夹名称中的URL编码(比如%20转空格、%28转(、%29转)等)还原成正常字符。

脚本代码

# 获取脚本所在目录,也可以手动指定路径,比如 $targetDir = "D:\你的文件夹路径"
$targetDir = $PSScriptRoot

# 先处理深层子文件夹(避免路径变化影响后续操作)
Get-ChildItem -Path $targetDir -Directory -Recurse | Sort-Object -Property FullName -Descending | ForEach-Object {
    try {
        # 解码文件夹名称
        $decodedName = [Uri]::UnescapeDataString($_.Name)
        if ($decodedName -ne $_.Name) {
            $newPath = Join-Path -Path $_.Parent.FullName -ChildPath $decodedName
            Rename-Item -Path $_.FullName -Destination $newPath -ErrorAction Stop
            Write-Host "已还原文件夹:$($_.FullName) → $newPath"
        }
    } catch {
        Write-Warning "无法还原文件夹 $($_.FullName):$_"
    }
}

# 再处理所有文件
Get-ChildItem -Path $targetDir -File -Recurse | ForEach-Object {
    try {
        # 解码文件名称
        $decodedName = [Uri]::UnescapeDataString($_.Name)
        if ($decodedName -ne $_.Name) {
            $newPath = Join-Path -Path $_.Directory.FullName -ChildPath $decodedName
            Rename-Item -Path $_.FullName -Destination $newPath -ErrorAction Stop
            Write-Host "已还原文件:$($_.FullName) → $newPath"
        }
    } catch {
        Write-Warning "无法还原文件 $($_.FullName):$_"
    }
}

Write-Host "所有可处理的文件/文件夹已完成还原"

使用方法

  1. 打开记事本,复制上面的代码粘贴进去。
  2. 若需处理指定文件夹,把第一行的$targetDir = $PSScriptRoot改成$targetDir = "你的文件夹完整路径",比如$targetDir = "D:\下载\解压后的文件夹"。
  3. 点击记事本左上角「文件」→「另存为」,保存类型选「所有文件」,文件名设为还原编码名称.ps1,保存到方便找到的位置。
  4. 右键点击这个.ps1文件,选择「用PowerShell运行」即可。

Batch 脚本方案(纯命令行,无需额外环境)

这个批处理脚本会递归处理指定目录(默认是脚本所在目录),还原常见的URL编码字符:%20→空格、%28→(、%29→)、%2C→,、%2F→/、%3A→:、%3F→?。

脚本代码

@echo off
setlocal enabledelayedexpansion

:: 设置要处理的目标目录,默认是脚本所在目录,可手动修改,比如 set "targetDir=D:\你的文件夹路径"
set "targetDir=%~dp0"

:: 先递归处理所有子文件夹(从最深层开始,避免路径失效)
for /r "%targetDir%" /d %%d in (*) do (
    call :decodeName "%%~nxd" "%%~dpd"
)

:: 再递归处理所有文件
for /r "%targetDir%" %%f in (*) do (
    call :decodeName "%%~nxf" "%%~dpf"
)

echo 所有可处理的文件/文件夹已完成还原
pause
exit /b

:: 解码名称的函数
:decodeName
set "oldName=%~1"
set "newName=%oldName%"

:: 替换常见的URL编码字符
set "newName=!newName:%20= !"
set "newName=!newName:%28=(!"
set "newName=!newName:%29=)!"
set "newName=!newName:%2C=,!"
set "newName=!newName:%2F=/!"
set "newName=!newName:%3A=:!"
set "newName=!newName:%3F=?!"

:: 如果名称有变化,执行重命名
if not "!newName!"=="!oldName!" (
    ren "%~2!oldName!" "!newName!"
    echo 已还原:"%~2!oldName!" → "%~2!newName!"
)
exit /b

使用方法

  1. 打开记事本,复制上面的代码粘贴进去。
  2. 要处理指定文件夹的话,把set "targetDir=%~dp0"改成set "targetDir=你的文件夹完整路径",比如set "targetDir=D:\下载\解压后的文件夹"。
  3. 点击「文件」→「另存为」,保存类型选「所有文件」,文件名设为还原编码名称.bat,保存后双击运行即可。

内容的提问来源于stack exchange,提问作者Jude Reyes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 18:34:54