我正在尝试更改现有脚本,以便我的用户名是名字首字母加点姓氏,例如:John Doe 的用户名将是 j.doe 当前脚本的工作方式(没有 .)为:$firstname.substring(0,$i) + $lastname
谢谢。
答案1
有多种方法可以构建该字符串。[咧嘴笑] 以下是我想到的 4 个。
代码的作用是什么……
- 伪造读取包含 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