gpt4 book ai didi

regex - 在PowerShell/PowerCLI中为字符串附加前缀

转载 作者:行者123 更新时间:2023-12-02 23:40:25 25 4
gpt4 key购买 nike

我正在尝试使用PowerCLI将特定的后缀附加到VM列表中,问题是我无法匹配字符串的开头并仅替换字符串的开头,相反,我得到的是将前缀附加到每个名称的字母。

这是代码:

$vApp="some-vapp"
$prefix = "SA-"

$VMlist = Get-VApp -Name $vApp | Get-VM

for ($i=0; $i -lt $VMlist.length; $i++) {
$destVMName = $VMlist[$i].Name -replace $^.Name, $prefix
$VMlist[$i] | set-vm -Name $destVMName -Confirm:$false -RunAsync:$true
}

问题出在正则表达式中
$VMlist[$i].Name -replace $^.Name, $prefix

这是输出示例:
PS > $VMlist[0].Name
Shared_AD_W2012
PS > $VMlist[0].Name -replace $^.Name, $prefix
SA-SSA-hSA-aSA-rSA-eSA-dSA-_SA-ASA-DSA-_SA-WSA-2SA-0SA-1SA-2SA-

所需的结果将是: SA-Shared_AD_W2012

最佳答案

使用可扩展字符串:

$prefixedString = "$prefix$($VMlist[0].Name)"

或常规字符串连接:
$prefixedString = $prefix + $VMlist[0].Name

关于regex - 在PowerShell/PowerCLI中为字符串附加前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44029567/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com