2013-03-14 67 views
0

我有一个csv,列中包含用户的名字姓氏。我已经firgured如何使用导入从每列的CSV数据:在PowerShell中组合和修改阵列中的对象以创建新阵列

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

我也想通了,:使用system.string对象时

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

作品。问题是我需要遍历所有名字的创造与用户名的新列,我得到

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

我想我可以转换为使用$firstname.ToString()字符串错误,但我似乎已经拙劣的那个。任何帮助都非常感谢,因为我仍然在学习PowerShell。

回答

1

错误是自我表达$firstname不是字符串。 $firstname是一组string

尝试:

$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') 
} 
+0

这是完美的。非常感谢。 – AK26 2013-03-14 13:36:16

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