【问题标题】:How do I save CSV data to variables based on a ListBox selection?如何根据 ListBox 选择将 CSV 数据保存到变量中?
【发布时间】:2015-12-07 05:44:41
【问题描述】:

我的脚本中有一个下拉列表,由 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 保存到变量中。寻找如何将变量及其中的名称与数组中的名称进行比较,并从中获得计数到现在为止是空的......想法?

【问题讨论】:

    标签: arrays powershell csv


    【解决方案1】:

    让它工作!

    $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/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多