我有一个包含用户名字姓氏的列的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。
答案 0 :(得分: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')
}
答案 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))
}