我对PowerShell相当陌生,并且正在努力查看以下命令出了什么问题:
Get-ChildItem -Filter "*Q1 2016.pdf" | For.\pdftk A={$_.name} B={$_.name -replace 'Q1 2016.pdf','Q1 2016-quad.pdf'} cat A1-3 B1 A5-end output {$_.name -replace 'Q1 2016.pdf','Q1 2016-final.pdf'}
我收到以下错误:
pdftk.exe : The command parameter was already specified.
At line:1 char:40
+ ... 2016.pdf" | .\pdftk A={$_.name} B={$_.name -replace 'Q1 2016.pdf','Q1 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [], ParameterBindingException
+ FullyQualifiedErrorId : ParameterSpecifiedAlready
但是,当我运行单个命令调用时,它可以正常工作:
.\pdftk A='myfile-Q1 2016.pdf' B='myfile-Q1 2016-quad.pdf' cat A1-3 B1 A5-end output 'myfile-final.pdf'
有什么想法我做错了吗?
最佳答案
原来应该是这样的:Get-ChildItem -Filter “*Q1 2016.pdf” | ForEach {.\pdftk A=$($_.name) B=$($_.name -replace ‘Q1 2016.pdf’,’Q1 2016-quad.pdf’) cat A1-3 B1 A5-end output $($_.name -replace ‘Q1 2016.pdf’,’Q1 2016-final.pdf’)}
不知何故,以下内容不起作用,但以上内容却有效:Get-ChildItem -Filter “*Q1 2016.pdf” | ForEach {.\pdftk A={$_.name} B={$_.name -replace ‘Q1 2016.pdf’,’Q1 2016-quad.pdf’} cat A1-3 B1 A5-end output {$_.name -replace ‘Q1 2016.pdf’,’Q1 2016-final.pdf’}}
关于windows - PowerShell:将命令应用于多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37443667/