【问题标题】:Combining and modifying objects from an array in powershell to create a new array在powershell中组合和修改数组中的对象以创建新数组
【发布时间】:2013-03-14 13:11:52
【问题描述】:

我有一个 csv,其中的列包含用户的名字姓氏。我已经弄清楚如何使用以下方法从每一列导入 csv 数据:

$firstname = Import-csv .\data.csv | select-object "Employee First Name" 
$lastname = Import-csv .\data.csv | select-object "Employee Last Name"

我也想通了:

$username=$firstname.substring(0,1)+$lastname 

在使用 system.string 对象时有效。问题是我需要遍历所有名称以使用用户名创建一个新列,我收到错误

System.Object[]] doesn't contain a method named 'substring'

我以为我可以使用 $firstname.ToString() 转换为字符串,但我似乎搞砸了。非常感谢任何帮助,因为我仍在尝试学习 powershell。

【问题讨论】:

    标签: arrays powershell csv


    【解决方案1】:

    错误是自我表达的$firstname 不是字符串。 $firstnamestring 的数组。

    试试看:

    $username = ($firstname[0]).substring(0,1)+$lastname[0]
    

    你最好使用:

    $employees = Import-csv .\data.csv
    foreach ($employee in $employees)
    {
      $username=($employee.'Employee First Name').substring(0,1)+($employee.'Employee Last Name')
    }
    

    【讨论】:

      【解决方案2】:

      看起来您正在尝试创建用户名。所以我不确定你为什么要一次导入一列?

      但这可能对你有用。

      $names = Import-Csv .\test.csv
      $userNames = New-Object 'System.Collections.Generic.List[String]'
      
      foreach ($name in $names)
      {
          $userNames.Add($($name.firstName.Substring(0,1) + $name.lastName))
      }
      

      【讨论】:

        猜你喜欢
        • 2022-07-20
        • 1970-01-01
        • 1970-01-01
        • 2021-05-03
        • 2018-08-01
        • 1970-01-01
        • 2021-09-24
        • 2013-11-27
        • 1970-01-01
        相关资源
        最近更新 更多