如何根据ListBox选择将CSV数据保存到变量?

时间:2015-09-10 19:42:09

标签: arrays powershell csv

我的脚本中有一个下拉列表,该列表由" name"填充。 CSV文件中的列。我希望将包含该名称的其他列中的信息保存到以后要使用的变量中。

例如(子弹就在那里,所以它们显示在彼此之下,否则显示为一行):

  • 姓名,地址,******中国,电子邮件
  • Bob,1234 Bob Rd,123-4567,bob @ email.com
  • Bill,5678 Bill Ave,246-8024,bill @ email.com

下拉列表会显示Bob和Bill。根据我选择的内容,我希望将其余信息保存为3个不同的变量,$ Address,$ PhoneNumber和$ Email。

我已经将CSV导入数组并按字母顺序排序。

$Customers = @(Import-CSV "$dir\Apps\Customers.csv")
$Array = $Customers.name | Sort-Object

以下是下拉框代码的一部分:

ForEach ($Choice in $Array) {

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

}

之后我无法根据点击按钮时选择的内容来弄清楚如何获取正确的信息。

这里是按钮代码:

$handler_gobutton_Click = { $company = $companybox.SelectedItem
                            ....
                          }

我现在有一些If声明用于之前没有使用CSV的解决方案,但我想尽可能转移到CSV文件。

谢谢!

编辑:我想我需要做的是以某种方式找到基于名称列的数组计数。之后,我应该能够将$ array [0] .address保存到变量中。找到如何将变量与其中的名称与数组中的名称进行比较,以及从中得到计数数字到目前为止是空的......想法?

1 个答案:

答案 0 :(得分:0)

让它发挥作用!

$handler_gobutton_Click = {
$company = $companybox.SelectedItem
$index = [array]::IndexOf($customers.name,$company)
If ($customers[$index].uninstall -eq "True") { $uninstallbox.checked = $True }
... and so on
}

来源:https://www.reddit.com/r/PowerShell/comments/t1928/finding_array_index_number/