Powershell TRIM() 正在删除多余的字符

Powershell TRIM() is removing extra character

我正在尝试从我的 SQL 服务器实例中删除“\MOSS2013”​​实例名称 "WSFCSQLN1\MOSS2013"

有效:

$primaryReplicaGEN = $wsfcsqln2.AvailabilityGroups.PrimaryReplicaServerName
$primaryReplica = $PrimaryReplicaGEN.TRIM("\GEN")

$primaryReplica 显示 WSFCSQLN1

$primaryReplicaGEN 显示 WSFCSQLN1\GEN

这行不通:

$primaryReplicaMOSS2013 = $wsfcsqln1MOSS2013.AvailabilityGroups.PrimaryReplicaServerName
$primaryReplica = $PrimaryReplicaMOSS2013.TRIM("\MOSS2013")

$primaryReplica 显示 WSFCSQLN

$primaryReplicaMOSS2013 显示 WSFCSQLN1\MOSS2013

请注意副本名称末尾缺少 1,即使我没有选择 trim 它也是如此。为什么 trim 为这个特定的字符串对象输入 1?我怎样才能强制它 trim 正确的字符。

好吧,这就是 trim 的工作原理,它会删除所有出现的所有字符 trim 它可以到达。

"agababga".Trim("ag")

return bab 不是 ababga,注意它没有 trim abab 里面,因为它不能 trim b,如果你这样做:

"agababga".Trim("agb")

你不会得到任何响应(空字符串)

Trim() 将字符串参数转换为 [char[]] 并从字符串的两端删除任何这些字符。

如果只想获取服务器名称,请使用 -split 运算符,然后丢弃实例名称:

$ServerName = 'WSFCSQLN1\MOSS2013' -split '\' |Select-Object -First 1

$ServerName,$null = 'WSFCSQLN1\MOSS2013' -split '\'

我会使用 split 调用:

$primaryReplica = $PrimaryReplicaGEN.split('\')[0];

你也可以像这样使用convertfrom-string

$SplitedVar='WSFCSQLN1\MOSS2013' | ConvertFrom-String -Delimiter "\" -PropertyNames "Domain", "ServerName"
$SplitedVar.Domain
$SplitedVar.ServerName