在powershell上不工作

在powershell上不工作,powershell,Powershell,我有代码,它将字符串拆分为数组。那么你能帮我吗,为什么这不起作用 $var="test.1->test.2" $arr=$var.Split("->") $arr[0]#show correct: "test.1" $arr[1]#doesn't show... 它起作用了。但它确实将字符串拆分为-或>,因此$arr[1]在-和>之间有空字符串,test.2在$arr[2]中 因此,您可以: $var="test.1->test.2" $arr=$var.Split("-&g

我有代码,它将字符串拆分为数组。那么你能帮我吗,为什么这不起作用

$var="test.1->test.2"
$arr=$var.Split("->")
$arr[0]#show correct: "test.1"
$arr[1]#doesn't show...

它起作用了。但它确实将字符串拆分为-或>,因此$arr[1]在-和>之间有空字符串,test.2在$arr[2]中

因此,您可以:

$var="test.1->test.2"
$arr=$var.Split("->")
write-host $arr[0]
write-host $arr[2]
或:

或者类似于:

$var="test.1->test.2"
$arr= $($var -replace "->","#").Split("#") 
write-host $arr[0]
write-host $arr[1]

它起作用了。但它确实将字符串拆分为-或>,因此$arr[1]在-和>之间有空字符串,test.2在$arr[2]中

因此,您可以:

$var="test.1->test.2"
$arr=$var.Split("->")
write-host $arr[0]
write-host $arr[2]
或:

或者类似于:

$var="test.1->test.2"
$arr= $($var -replace "->","#").Split("#") 
write-host $arr[0]
write-host $arr[1]
string Split方法接受一个字符数组,并在数组中的任何字符上拆分字符串。Powershell还有一个使用分隔符的-split运算符。我想您可能想在这里使用-split运算符

区别就在这里。第一个在'-'和'>'上拆分,第二个在'->'上拆分:

PS C:\> $var.Split("->")
test.1

test.2
PS C:\> $var -split "->"
test.1
test.2
请注意,split采用正则表达式模式,而不是简单的字符串。虽然这对于此特定模式很好,但其他标点符号可能会出现问题,要求您转义模式中的特殊字符或使用SimpleMatch选项:

PS C:\> "a[b" -split "[",0,"SimpleMatch"
a
b
string Split方法接受一个字符数组,并在数组中的任何字符上拆分字符串。Powershell还有一个使用分隔符的-split运算符。我想您可能想在这里使用-split运算符

区别就在这里。第一个在'-'和'>'上拆分,第二个在'->'上拆分:

PS C:\> $var.Split("->")
test.1

test.2
PS C:\> $var -split "->"
test.1
test.2
请注意,split采用正则表达式模式,而不是简单的字符串。虽然这对于此特定模式很好,但其他标点符号可能会出现问题,要求您转义模式中的特殊字符或使用SimpleMatch选项:

PS C:\> "a[b" -split "[",0,"SimpleMatch"
a
b