递归地将输出 PDF 文件重命名为子目录名称 Powershell

Rename output PDF files as subdirectory name recursively Powershell

我是 Powershell 的新手。想要合并所有 PDF 文件子类别(完成)。接下来,我想为我的 $outputfile 定义一个递归名称,它将由 subdirectory name + 'Additional Text' 组成。我卡在这一点上了...

$pdftk = 'C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe' 
$inputfolder = "C:\Tests" 
$outputfile = "combined.pdf"

dir $inputfolder -r -include *.pdf -exclude $outputfile | sort-object | 
group DirectoryName |   % {& $PDFtk $_.group CAT OUTPUT "$($_.Name)$outputfile" verbose}

我正在尝试使用类似下面这一行的内容。我不知道如何引用 $outputfile。如何定义动态输出名称?

gci C:\Tests\*.*  | % { rename-item –path $_.Fullname –Newname ( $_.basename + (get-date -format ' Additional Text') + $_.extension)}

在目录 C:\Tests 中有文件夹 xx, yy, zz。我的代码合并了每个子目录中的所有文件并将其命名为 combined.pdf。我想在 C:\Tests\xx 子目录中查看最终文件 xx.pdf,在 \yy 中查看 yy.pdf,在 \zz 中查看 zz.pdf,而不是 combined.pdf :) 现在我在想怎么用$($currentfolder.FullName)$outputfile来实现。

您可以在初始创建文件时写入正确的名称,而不是重命名,如下所示:

    & $PDFtk $_.group CAT OUTPUT "$($_.Name)$($_.Name | Split-Path -Leaf).pdf" verbose