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

PowerShell配合PDFtk合并子文件夹PDF后删除原文件的问题咨询

修改后可自动删除原PDF的PowerShell脚本
$pdftk = "C:\Program Files (x86)\PDFtk\bin\pdftk.exe"
$RootFolder = "替换为你的根目录实际路径"

Set-Location $RootFolder

Get-ChildItem -Recurse -Include *.pdf | Group-Object DirectoryName | ForEach-Object {
    $currentDir = $_.Name
    $sourcePdfs = $_.Group
    $mergedName = "$(Split-Path $currentDir -Leaf)_merged.pdf"
    # 合并文件生成在子文件夹同级的上级目录,和你原有逻辑一致
    $mergedFullPath = Join-Path -Path (Split-Path $currentDir -Parent) -ChildPath $mergedName
    # 如果要把合并文件生成在对应子文件夹内,改用下面这行注释的代码
    # $mergedFullPath = Join-Path -Path $currentDir -ChildPath $mergedName

    & $pdftk $sourcePdfs.FullName CAT OUTPUT $mergedFullPath
    
    # 仅合并成功时删除原PDF,避免文件丢失
    if ($LASTEXITCODE -eq 0) {
        Write-Host "已生成合并文件:$mergedFullPath,删除该目录原始PDF"
        Remove-Item -Path $sourcePdfs.FullName -Force
    } else {
        Write-Warning "目录 $currentDir 合并失败,跳过删除操作"
    }
}

注意事项

  • 脚本保留了你原有合并文件的生成逻辑,也提供了合并文件生成到子文件夹内的可选写法,按需选择即可
  • 新增了合并结果校验,只有pdftk正常执行完成后才会删除原始PDF,避免合并中途出错导致文件丢失
  • 测试阶段可以先注释掉Remove-Item那行,确认合并文件生成路径、内容都符合预期后再开启删除逻辑
  • 如果遇到PDF被其他程序占用的情况,删除操作会报错,可在Remove-Item后添加-ErrorAction SilentlyContinue参数忽略报错,后续手动处理占用文件即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 19:06:03