我正在嘗試更改現有腳本,以便我的用戶名是名字初始點姓氏,例如:John Doe 的用戶名將是j.doe 當前腳本的工作原理(不帶。)為: $firstname.substring(0,$ i) + $姓氏
謝謝。
答案1
有多種方法可以建構該字串。 [咧嘴笑] 這是我想到的其中四個。
代碼的作用...
- 假冒讀取帶有 FirstName、LastName 資料的 CSV 文件,
並將整個#region/#endregion
區塊替換為您首選的資料來源。 - 迭代結果集合
- 使用 4 種不同的方法建立所需的字串,
我更喜歡-f
字串格式運算符,但許多人更喜歡字串連接。 - 將每個發送到顯示器
- 在結果組之間新增分隔線
代碼 ...
#region >>> fake reading in a CSV file
# when ready to do this for real, use your prefered data source
# and delete or comment out the entire "#region/#endregion" block
$NameList = @'
FirstName, LastName
Alfa, Bravo
Charlie, Delta
Echo, Foxtrot
'@ -split [System.Environment]::NewLine |
ConvertFrom-Csv
#endregion >>> fake reading in a CSV file
foreach ($NL_Item in $NameList)
{
# string format operator
'{0}.{1}' -f $NL_Item.FirstName[0], $NL_Item.LastName
# -join operator
$NL_Item.FirstName[0], $NL_Item.LastName -join '.'
# string concatenation
$NL_Item.FirstName[0] + '.' + $NL_Item.LastName
# variable-in-string expansion
"$($NL_Item.FirstName[0]).$($NL_Item.LastName)"
# yes, you can multiply a string [*grin*]
'=' * 20
}
輸出 ...
A.Bravo
A.Bravo
A.Bravo
A.Bravo
====================
C.Delta
C.Delta
C.Delta
C.Delta
====================
E.Foxtrot
E.Foxtrot
E.Foxtrot
E.Foxtrot
====================
答案2
$firstname.substring(0,$i) +"."+ $lastname