Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在powershell中组合和修改数组中的对象以创建新数组_Arrays_Powershell_Csv - Fatal编程技术网

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

Arrays 在powershell中组合和修改数组中的对象以创建新数组,arrays,powershell,csv,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

我有一个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[]不包含名为“substring”的方法。


我原以为我可以使用
$firstname.ToString()
转换成字符串,但我似乎把它搞砸了。非常感谢您的帮助,因为我仍在努力学习powershell。

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

尝试:

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

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

但这可能对你有用

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