Powershell split()函数返回的值多于预期

时间:2017-09-14 10:28:55

标签: powershell split

我有一个csv文件,其中包含与此类似的内容

"Some KIND of Test","[STATUS]","TESTNAME","VMNAME","TESTTME","SOME PARAMETER"

我正在尝试解析这个问题。我使用split来获取STATUSTESTNAME

$col = $line.split('","') #used .split('`",`"') as well
$col.length #output value is 18
#cl = $line.split(',')
$cl.length #output value is 6

为什么我在这里看到两个不同的值。在这两种情况下,'","都会出现相同的次数

好像我犯了一些基本的错误。我无法弄明白。任何帮助将不胜感激。 感谢

2 个答案:

答案 0 :(得分:2)

only resolvable overload for String.Split()","字符串参数视为字符数组,并在每次出现数组中的任何字符时进行拆分。

改为使用-split regex operator

$col = $line -split '","'

如果您真的讨厌正则表达式,可以通过将第一个输入参数显式地转换为字符串数组来强制an overload of String.Split() that takes strings as separators

$col = $line.Split([string[]]@('","'),[System.StringSplitOptions]::None)

答案 1 :(得分:2)

为什么你不使用import-csv命令呢?

import-csv "yourpathtofile"

如果你真的想要使用get-content,你也可以使用它:

$string='"Some KIND of Test","[STATUS]","TESTNAME","VMNAME","TESTTME","SOME PARAMETER"'
$string | ConvertFrom-Csv -Delimiter "," -Header p1, status, testname, p4, p5 | select status, testname