将CSV列保存到阵列?

时间:2016-07-27 07:48:23

标签: csv powershell

我想将CSV文件中的三列保存到三个不同的数组中,一个用于用户名,一个用于ip-addresses,另一个用于密码。但它似乎不起作用(至少从我的理解)。

以下是代码:

$Importedcsv = Import-csv "C:\my\file\is\located\here.txt" -Delimiter ";"

$Importedcsv.password += $PasswordArray
$Importedcsv.address += $AdressArray
$Importedcsv.username += $UsernameArray

这是我得到的错误:

The property 'username' cannot be found on this object. Verify that the property exists and can be set.
At C:\blyat\cyka\ruski.ps1:7 char:1
+ $Importedcsv.username += $UsernameArray
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : PropertyAssignmentException

我也得到了其他列的错误。

如果你想了解更多细节请很好地问:D

请记住,我只使用了PowerShell几天,所以请尽量详细解释所有内容,谢谢!

CSV文件:

address;username;password
192.168.0.10;advokathuset\user;#adfgad
192.168.0.10;atek\user;#afdgadfg
192.168.0.10;digo\user;#adfgadf
192.168.0.10;daldens\user;#adfgsdfh
192.168.0.10;elservicetibro\user;adfgdasf
192.168.0.10;finmek\user;#adfhsfgj
192.168.0.10;formidabel\user;#zadfsgsdfh
192.168.0.10;gronsakshuset\user;#sdfgsfgh1
192.168.0.10;jarisafe\user;#adfgfjg
192.168.0.10;jattadalen\user;#adfgadfgh
192.168.0.10;ks\user;#sadfgsfdgh
192.168.0.10;karstorp\user;#sfdgsgfdh
192.168.0.10;leklandet\user;#gadsfhsd
192.168.0.10;nordiskindustri\useer;#sdfgm
192.168.0.10;odz\user;#gsdfjsdrg
192.168.0.10;oneup\user;#sfdtghsfdg
192.168.0.10;proline\user;#sdfjdgfh
192.168.0.10;saj\user;#dsfgsj
192.168.0.10;swedcon\user;#sadfasd
192.168.0.10;sek\user;#a gffghj
192.168.0.10;sir\user;sfhgd ghj
192.168.0.10;skinnwille\user;#sdfgs35 4dfgh
192.168.0.10;SMEA\user;dsfg456egt
192.168.0.10;tibromobel\user;fghjfgh1
192.168.0.10;tibrokok\user;sdfgsdfg
192.168.0.10;tottegott\user;sdfgsfgj
192.168.0.10;unojohanssons\user;sdfgsdfg
192.168.0.10;variantkok\user;#dfgsdfgs1
192.168.0.10;wexman\user;sdfg
192.168.0.10;wikstrands\user;khfjg
192.168.0.10;willbo\user;asdffdsafe
192.168.0.10;skovdeft\user;#5asdfasdf
192.168.0.10;kungsaterkok\user;asdfasdf
192.168.0.10;soderstroms\user; asdfasdf
192.168.0.10;elogistik\user;asdfasdf

3 个答案:

答案 0 :(得分:2)

我可以看到两个错误。您正在尝试添加到尚未存在的数组中,并且您试图将数据放在错误的方向。

$Importedcsv = Import-csv "C:\my\file\is\located\here.txt" -Delimiter ";"

$PasswordArray = @($Importedcsv.password)
$AdressArray   = @($Importedcsv.Address)
$UsernameArray = @($Importedcsv.username)

答案 1 :(得分:2)

您可能会发现此处使用数组是多余的。

例如:

$Importedcsv.password

...已经是一个数组了。您可以通过提供索引来访问信息:

$Importedcsv.password[0] 

这会给你第一个密码。

答案 2 :(得分:1)

您的Import-Csv调用是正确的,但您必须撤销作业:

$PasswordArray = $Importedcsv.password
$AdressArray = $Importedcsv.address
$UsernameArray = $Importedcsv.username

如果阵列已经定义并包含数据,则需要将分配更改为+=