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

请求实现同工单编号子文件夹合并至Complete目录的自动化方案

自动化合并工单PDF文件并调用PDFTK合并的解决方案

这里有一个完整的PowerShell脚本方案,可以帮你自动完成文件归类到Complete目录的步骤,并且可以直接衔接你现有的PDFTK合并脚本,一次性完成所有操作:

完整脚本

# ---------------------- 第一步:自动合并文件到Complete目录 ----------------------
# 设置根目录(请根据你的实际路径修改这一行)
$rootPath = "L:\OpenLocates\Current"

# 定义各子目录路径
$coversPath = Join-Path $rootPath "Covers"
$responsesPath = Join-Path $rootPath "Responses"
$ticketsPath = Join-Path $rootPath "Tickets"
$completePath = Join-Path $rootPath "Complete"

# 获取所有唯一的工单编号(从Covers目录提取,确保每个工单都有对应封面)
# 如果担心遗漏,也可以用注释里的代码合并三个目录的编号去重
$ticketNumbers = Get-ChildItem -Path $coversPath -Directory | Select-Object -ExpandProperty Name
# $ticketNumbers = (Get-ChildItem -Path $coversPath,$responsesPath,$ticketsPath -Directory | Select-Object -ExpandProperty Name) | Get-Unique

# 遍历每个工单编号,完成文件迁移
foreach ($ticketNum in $ticketNumbers) {
    # 构建目标文件夹路径
    $targetDir = Join-Path $completePath $ticketNum
    
    # 如果目标文件夹不存在则自动创建
    if (-not (Test-Path $targetDir)) {
        New-Item -ItemType Directory -Path $targetDir | Out-Null
        Write-Host "已创建目标文件夹: $targetDir"
    }

    # 迁移封面文件
    $sourceCoversDir = Join-Path $coversPath $ticketNum
    if (Test-Path $sourceCoversDir) {
        Get-ChildItem -Path $sourceCoversDir -Filter *.pdf | Move-Item -Destination $targetDir -Force
        Write-Host "已迁移封面文件到 $targetDir"
    }

    # 迁移回复文件
    $sourceResponsesDir = Join-Path $responsesPath $ticketNum
    if (Test-Path $sourceResponsesDir) {
        Get-ChildItem -Path $sourceResponsesDir -Filter *.pdf | Move-Item -Destination $targetDir -Force
        Write-Host "已迁移回复文件到 $targetDir"
    }

    # 迁移工单文件
    $sourceTicketsDir = Join-Path $ticketsPath $ticketNum
    if (Test-Path $sourceTicketsDir) {
        Get-ChildItem -Path $sourceTicketsDir -Filter *.pdf | Move-Item -Destination $targetDir -Force
        Write-Host "已迁移工单文件到 $targetDir"
    }

    Write-Host "✅ 工单编号 $ticketNum 的文件合并完成`n"
}

# ---------------------- 第二步:调用PDFTK合并PDF文件 ----------------------
$pdftk = "C:\SymLinks\Combine\pdftk.exe"
$inputFolder = $completePath

# 遍历Complete目录下的所有子文件夹,合并PDF
Get-ChildItem $inputFolder -Recurse -Include *.pdf | 
    Sort-Object | 
    Group-Object DirectoryName | 
    ForEach-Object {
        $outputFileName = "$(Split-Path $_.Name -Leaf).pdf"
        $outputPath = Join-Path (Split-Path $_.Name -Parent) $outputFileName
        & $pdftk $_.group CAT OUTPUT $outputPath verbose
        Write-Host "📄 已合并PDF文件: $outputPath"
    }

Write-Host "`n🎉 所有操作已完成!"

脚本说明

  • 路径配置:只需要修改开头的$rootPath为你的实际Current文件夹路径即可,其他子目录路径会自动生成。
  • 工单编号提取:默认从Covers目录提取编号(因为每个工单对应一个封面),如果担心有遗漏,可以启用注释里的代码,合并三个目录的编号并去重。
  • 文件迁移:使用Move-Item实现和手动剪切粘贴一样的效果,如果需要保留原文件,只需把Move-Item替换为Copy-Item即可。
  • PDF合并:直接整合了你提供的PDFTK调用脚本,并且优化了输出路径的构建逻辑,确保合并后的PDF文件保存在对应工单编号的父目录下(即Complete目录下,以工单编号命名的PDF文件)。

使用方法

  1. 把上述脚本复制到文本编辑器中,修改$rootPath为你的实际路径。
  2. 保存为.ps1格式的文件,比如CompleteTicketWorkflow.ps1。
  3. 在PowerShell中运行该脚本即可完成全部流程。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:42:00