目錄中有部分以相同方式啟動的檔案:
- C001_200129.pdf
- C001_29292.pdf
- C001_ABCDF.pdf
- C041_29292.pdf
- C041_110101.pdf
- P121_AAAA.pdf
- P121_CCCC.pdf
- P121_DDDD.pdf
- P121_AKAKA.pdf
具有相同前綴的檔案(我事先不知道),我只知道前4個字符相同,要合并。
pdftk.exe $a*.pdf CAT OUTPUT \Merged\$a-merged.pdf
如何回圈查找具有相同前綴的所有檔案,然后將它們傳遞給 $a 變數并合并它們,然后直接轉到我可以合并的下一組檔案。
這里的目標應該是
- C001_Merged.pdf
- C041_Merged.pdf
- P121_Merged.pdf
能夠創造
uj5u.com熱心網友回復:
Santiago Squarzon在評論中提供了基本步驟;讓我充實他們:
Get-ChildItem -Filter *.pdf | # Get all input files.
Group-Object { ($_.Name -split '_')[0] } | # Group them by shared prefix.
ForEach-Object { # Process each group.
pdftk.exe $_.Group.FullName CAT OUTPUT \Merged\$($_.Name)_merged.pdf
}
Group-Object用于*.pdf將當前目錄中的所有檔案-LiteralPath按共享前綴(名稱的開頭直到,但不包括 )分組(添加引數以定位不同的目錄。_)。.Name每個結果[Microsoft.PowerShell.Commands.GroupInfo]實體的屬性都包含該共享前綴,并且該.Group屬性包含構成該組的所有檔案資訊物件。$_.Group.FullName使用成員訪問列舉來獲取組中所有檔案資訊物件的完整路徑 (.FullName);將生成的檔案路徑陣列傳遞給外部程式,例如pdftk.exe導致路徑作為單獨的引數傳遞。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/505051.html
