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

时间:2017-12-08 11:30:04

标签: powershell recursion output rename subdirectory

我对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。而不是combined.pdf我希望在xx.pdf子目录中看到最终文件C:\Tests\xxyy.pdf中的\\yyzz.pdf中的\\zz :)现在我正在思考如何使用$($currentfolder.FullName)\$outputfile来实现它。

1 个答案:

答案 0 :(得分:0)

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

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