在powershell中组合和修改数组中的对象以创建新数组

时间:2013-03-14 13:11:52

标签: arrays powershell csv

我有一个包含用户名字姓氏的列的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。

2 个答案:

答案 0 :(得分: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')
}

答案 1 :(得分:0)

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

但这可能适合你。

$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))
}