Powershell中的CSV问题

时间:2016-05-13 02:09:35

标签: arrays csv powershell

我导入了一个.csv文件,我在表格中的组合框中列出了第一列。我试图将组合框中的选定数据与相应的行匹配。例如

办公室,服务器 芝加哥,chicago1 纽约,纽约1 洛杉矶,la1

当他们选择$ office时,id喜欢创建$ server的下一个对象并在其他地方引用它。

$Offices = @(Import-CSV "C:\source\PrinterTable.csv")
$Array = $Offices.office | Sort-Object

ForEach ($Choice in $Array) {

    [void] $objListBox.Items.Add($Choice)

}

  $handler_Office_Click= 
{ 

   $officeSelected = $objListBox.SelectedItem
   $row = $officeSelected | where { $_.office -eq $officeSelected }
   $server = $row.server
explorer.exe \\$server


}

我一直在谷歌搜索数小时......请帮助!

3 个答案:

答案 0 :(得分:0)

如果您有选定的办公室名称,请在$offices中找到一个匹配office字段的行。然后从此行中选择server字段。

$row = $offices | where { $_.office -eq $office }
$server = $row.server

答案 1 :(得分:0)

运行foreach循环来读取csv中的每一行,直到找到所需的$office

Foreach ($line in $offices) {
         If ($line.office -eq $office) {
                 $server = $line.server  
         }
}

答案 2 :(得分:0)

所以我想出了修复,我不得不把我的csv带回我的$ handler click,最后的代码是

    $handler_Office_Click= 
{ 

        $officeSelected = $objListBox.SelectedItem
    $OffServer= ($PrinterTables | where {$_.office -eq $officeSelected}).server


explorer.exe \\$OffServer


}

$PrinterTables = @(Import-CSV "C:\Program Files (x86)\Helpdesk 2.0\PrinterTables.csv")
$ListedOffices = $PrinterTables.office | Sort-Object



ForEach ($Choice in $ListedOffices) {

    [void] $objListBox.Items.Add($Choice)


}