我导入了一个.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
}
我一直在谷歌搜索数小时......请帮助!
答案 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)
}