2013-03-14 69 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)) 
}