我正在尝试从我的SQL Server实例“WSFCSQLN1 \ MOSS2013”中删除“\ 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。为什么要为这个特定的字符串对象修剪1?如何强制它修剪正确的字符。
答案 0 :(得分:2)
好吧,那就是修剪如何运作,它将删除你要修剪的所有角色的所有出现位置。
"agababga".Trim("ag")
会返回bab
而不是ababga
,请注意a
内部bab
没有修剪b
因为它无法修剪"agababga".Trim("agb")
,如果你这样做:
if (str == null) {
return new String[0];
}
你没有得到任何东西(空字符串)作为回应
答案 1 :(得分:2)
Trim()
将字符串参数转换为[char[]]
,并从字符串的两端删除任何字符。
如果您只想获取服务器名称,请使用-split
运算符,然后丢弃实例名称:
$ServerName = 'WSFCSQLN1\MOSS2013' -split '\\' |Select-Object -First 1
或
$ServerName,$null = 'WSFCSQLN1\MOSS2013' -split '\\'
答案 2 :(得分:2)
你可以像这样使用convertfrom-string
$SplitedVar='WSFCSQLN1\MOSS2013' | ConvertFrom-String -Delimiter "\\" -PropertyNames "Domain", "ServerName"
$SplitedVar.Domain
$SplitedVar.ServerName
答案 3 :(得分:1)
我会使用拆分电话:
$primaryReplica = $PrimaryReplicaGEN.split('\')[0];