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

ユーザー名を作成しようとしているようです。一度に 1 つの列をインポートする理由がわかりません。

しかし、これはあなたのために働くかもしれません。

$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 に答える