Powershell管道变量在字符串内

时间:2014-01-30 13:17:48

标签: powershell pipeline

我用

  

for($ i = 0; $ i -le 3; $ i ++){
Get-ChildItem -path   $ somepath | Copy-Item -Destination“c:\ somefolder \ $ i - $ {$ _。Name}”
}

但是目标路径从未从变量转换为正确的字母。我的意思是: 假设$ i = 2和$ _。name = file.exe

  

“c:\ somefolder \ $ i - $ {$ .Name}”转到c:\ somefolder \ 2-“
  “c:\ somefolder \ $ i - $($
.Name)”转到c:\ somefolder \ 2-“
  “c:\ somefolder \ $ {$ .Name} $ i”转到c:\ somefolder \ 2-“
  “c:\ somefolder \ $ {$
.Name}”转到c:\ somefolder \ 2-“˙但是   “c:\ somefolder \ $ {$ _。Name}”转到c:\ somefolder \ file.exe“

我做错了什么?如何将两个变量组合在一起

1 个答案:

答案 0 :(得分:1)

您不能在类似的字符串中访问$_,但如果脚本块用作接受管道输入的参数的参数,则可以在scriptblock内部进行访问,例如:

for ($i = 0; $i -le 3; $i++) {
    Get-ChildItem $somepath | Copy-Item -Destination {"c:\somefolder\$i-$($_.Name)"} 
}