我用
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“
我做错了什么?如何将两个变量组合在一起
答案 0 :(得分:1)
您不能在类似的字符串中访问$_
,但如果脚本块用作接受管道输入的参数的参数,则可以在scriptblock内部进行访问,例如:
for ($i = 0; $i -le 3; $i++) {
Get-ChildItem $somepath | Copy-Item -Destination {"c:\somefolder\$i-$($_.Name)"}
}