使用replace函数在Select-Object中添加前缀

时间:2014-11-06 13:58:01

标签: powershell

我需要将$ server的前缀添加到$ name。

$server = "\\server001"
$array | Select-Object @{Name = "Name"; Expression = {$_.name -replace "`$_.Name","\\\\`$server\\`$_.Name"}}

它不起作用,我该怎么办?

2 个答案:

答案 0 :(得分:1)

如果您使用格式字符串,那会更简单:

$array | Select-Object @{Name = "Name"; Expression = {"$server\{0}" -f $_.name}}

答案 1 :(得分:0)

-replace使用正则表达式查找匹配项。它不需要为替换而转义字符。你也用反引号逃避$,所以它不会尝试扩展变量。

"\\\\`$server\\`$_.Name"应为此"$server\$($_.Name)"

变量以双引号字符串展开。但是,属性不会使用子表达式$()。您的代码不清楚,但这似乎是问题的根源。