解析文本文件并将内容放入Array Powershell

时间:2014-07-15 17:37:03

标签: text-files powershell-v2.0

我正在寻找一种解析文本文件的方法,并将结果放入PowerShell中的数组中。

我知道select-string -path -pattern将获得与模式匹配的所有字符串。但是,如果我已经有一个结构化的文本文件,可能是管道分隔的,每行都有新的条目。像这样:

prodServ1a prodServ1b prodServ1c

C:\ DIR \ serverFile.txt

如何将每个服务器放入PowerShell的数组中,我可以循环使用?

2 个答案:

答案 0 :(得分:4)

你说'管道分隔,像这样'但你的例子不是管道分隔的。我想象一下,那么你需要使用Import-CSV命令行开关。例如如果数据文件包含:

prodServ1a|4|abc
prodServ1b|5|def
prodServ1c|6|ghi

然后这段代码:

$data = Import-Csv -Path test.dat -Header "Product","Cost","SerialNo" -Delimiter "|"

将导入并拆分它,并添加标题:

$data

Product                    Cost                       SerialNo
-------                    ----                       --------
prodServ1a                 4                          abc
prodServ1b                 5                          def
prodServ1c                 6                          ghi

然后你可以使用

foreach ($item in $data) {
    $item.SerialNo
}

答案 1 :(得分:1)

如果您的数据是平面或非结构化的,但有一个模式,例如用空格或逗号分隔,没有回车符或换行符,则可以使用Split()方法。

PS>$data = "prodServ1a prodServ1b prodServ1c"

PS>$data
prodServ1a prodServ1b prodServ1c

PS>$data.Split(" ")
prodServ1a
prodServ1b
prodServ1c

特别适合向您发送以逗号分隔的IP地址列表的人。