Windows PowerShell:将命令应用于多个文件
我是PowerShell的新手,正在努力了解以下命令的错误:Windows PowerShell:将命令应用于多个文件,windows,powershell,batch-file,Windows,Powershell,Batch File,我是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 : Th
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=$($uu.name)B=$($u.name-替换'Q1 2016.pdf','Q1 2016 quad.pdf')cat A1-3 B1 A5终端输出$($u.name-替换'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结束输出{$\.name-replace'Q1 2016.pdf','Q1 2016 final.pdf'}
这可能的重复可能试图解释为什么需要$($变量)语法