0

我有一个 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。

4

2 回答 2

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')
}
于 2013-03-14T13:30:15.180 回答
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))
}
于 2013-03-14T13:41:39.527 回答