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

如何在R语言中批量替换本地PDF文件的旧文件名?

批量替换本地PDF文件名的方法

假设你已经将旧文件名与新文件名的对应关系整理成了映射表,以下是几种高效的批量重命名方案:


前提准备

先把旧文件名和新文件名的对应关系存成CSV格式文件(命名为rename_map.csv),每行格式为旧文件名,新文件名,示例如下:

(P102180.R2858.M60102148)SupplierPerformanceDashboard.PDF,60102148.PDF
(P10424.R2858.M60010424)SupplierPerformanceDashboard.PDF,60010424.PDF
(P14479.R2858.M60004820)SupplierPerformanceDashboard.PDF,60004820.PDF

将这个CSV文件和所有待重命名的PDF放在同一个文件夹下。


方案1:Python脚本

适合有Python环境的用户,灵活性高:

  1. 在文件夹内创建rename_files.py脚本,内容如下:
import os
import csv

# 读取映射表
with open('rename_map.csv', 'r', encoding='utf-8') as f:
    reader = csv.reader(f)
    # 如果CSV有表头,取消下面一行的注释跳过表头
    # next(reader)
    for old_name, new_name in reader:
        if os.path.exists(old_name):
            os.rename(old_name, new_name)
            print(f"已重命名:{old_name} → {new_name}")
        else:
            print(f"文件不存在:{old_name}")
  1. 打开命令行进入该文件夹,执行命令:python rename_files.py

方案2:Windows PowerShell脚本

无需额外安装工具,Windows系统自带:

  1. 在文件夹内创建rename_files.ps1脚本:
# 读取CSV映射表
$renameMap = Import-Csv -Path ".\rename_map.csv" -Header "OldName", "NewName"

foreach ($item in $renameMap) {
    $oldPath = Join-Path -Path $PWD.Path -ChildPath $item.OldName
    $newPath = Join-Path -Path $PWD.Path -ChildPath $item.NewName
    
    if (Test-Path $oldPath) {
        Rename-Item -Path $oldPath -NewName $item.NewName
        Write-Host "已重命名:$($item.OldName) → $($item.NewName)"
    } else {
        Write-Host "文件不存在:$($item.OldName)"
    }
}
  1. 右键以管理员身份打开PowerShell,进入文件夹后执行:.\rename_files.ps1

方案3:Windows批处理脚本

适合习惯用批处理的用户:

  1. 将映射表保存为rename_list.txt,每行格式为旧文件名 新文件名(文件名不含空格时适用):
(P102180.R2858.M60102148)SupplierPerformanceDashboard.PDF 60102148.PDF
(P10424.R2858.M60010424)SupplierPerformanceDashboard.PDF 60010424.PDF
  1. 创建rename.bat脚本:
@echo off
setlocal enabledelayedexpansion

for /f "tokens=*" %%i in (rename_list.txt) do (
    set "line=%%i"
    for /f "tokens=1,*" %%a in ("!line!") do (
        if exist "%%a" (
            ren "%%a" "%%b"
            echo 已重命名:%%a → %%b
        ) else (
            echo 文件不存在:%%a
        )
    )
)
pause
  1. 双击运行rename.bat即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 11:39:47