2016-08-26 30 views
0

.csvファイルにユーザー名のリストがあります。このPowerShellは文字列から文字を抽出します。

PC,User 
comp-1,john.doe 
PC-2,steven.smith 
MAC-1,betty.crocker 

のように見えると私は別の変数に入れて最初と最後の名前の最初の文字を抽出したいと思います。これを達成する方法がわかりません。ここに私の最初の手紙を得る私のコードです。

$PepCSV = import-csv C:\pep.csv 
foreach($X in $PepCSV) 
    { 
    $UserName = $X.User 
    $UserInt = $UserName.Substring(0,1) 
    Write-Output "UserName = $UserName `n UserInt = $UserInt" 
    } 

出力この

UserName = john.doe 
UserInt = j 
UserName = steven.smith 
UserInt = s 
UserName = betty.crocker 
UserInt = b 

にはどうすればUserIntための第二の手紙を得ることができていますか?

答えて

1

使用-replace直接イニシャルやパイプ以外のすべてを取り除きregexpで:

import-csv C:\pep.csv | %{ 
    'UserName = ' + $_.User 
    ' UserInt = ' + ($_.User -replace '(.).*?\.(.).*', '$1$2') 
} 
1

あなたはこのコードレットによる姓の最初の文字を取得することができます:

$PepCSV = import-csv C:\pep.csv 
foreach($X in $PepCSV) 
{ 
$UserName = $X.User 
$UserInt = $UserName.Substring(0,1) + ($Username -split '\.')[1].substring(0,1) 
Write-Output "UserName = $UserName `n UserInt = $UserInt" 
} 
+0

あなたがここに何をすべきかです:文字列John.Doeをドットで分割し、その2番目の部分を取り、部分文字列メソッドを再度実行します。これには '+' – restless1987

関連する問題