合并以相同文件名相似度开头的文件

合并以相同文件名相似度开头的文件

我需要合并位于一个文件夹中的多个 PDF 文件(PDF源)。

我有这两个文件夹:

PDF源
PDF决赛

我在一个文件夹中有多个 PDF 文件(PDF源) 具有不同的文件名。需要合并在一起的 PDF 将具有共同的部分文件名;例如:

AU2925-0.pdf
AU2925-3.pdf
U8163-0.pdf
U8163-1.pdf
U8163-2.pdf
U8163-3.pdf
U8163-4.pdf
U8299-0.pdf
U8299-4.pdf

我想使用部分文件名将所有文件合并到一个文件中,U8163在这种情况下。

我需要检查文件夹中的所有文件名(PDF源),如果存在 5 个以相同文件名开头的文件,则将它们合并,并将最终文件保存在单独的文件夹中(PDF决赛)并删除源文件(U8163-0.pdf、U8163-1.pdf、U8163-2.pdf、U8163-3.pdf、U8163-4.pdf)。

我有pdftk电源外壳安装在我的电脑上。

答案1

谢谢你的回答。我苦思冥想了两天,最后决定在这里发一个问题。是的,我在网上到处寻找类似的问题,也找到了一些小窍门。睡了几个小时后,我终于写出了一个可以按我的需求运行的脚本。

这是脚本:

$destinationDir = "destination folder"
$storageDir = "storage folder"
$sourceDir = "source of PDF files"
$filesByCommonBaseName = Get-ChildItem -Path $sourceDir  -Filter "*.PDF" |Group-Object { ($_.Name -split '-')[0] }
foreach($entry in $filesByCommonBaseName){
    Write-Host "Operating on files starting with $($entry.Name)"
    if($entry.Count -eq 5){
        # we found five matches, move them!
        pdftk.exe $entry.Group CAT OUTPUT $destinationDir\$($entry.Name).pdf
        $entry.Group |Move-Item -Destination $storageDir -Force
    }
}

相关内容