Estou tentando alterar um script existente para que meu nome de usuário seja primeiro nome, ponto inicial, sobrenome, por exemplo: O nome de usuário de John Doe será j.doe O script atual funciona (sem o .) como: $firstname.substring(0,$i) + $sobrenome
obrigado.
Responder1
existem várias maneiras de construir essa string. [sorriso] aqui estão 4 deles que me vêm à mente.
o que o código faz...
- falsificações de leitura em um arquivo CSV com dados de Nome e Sobrenome
substituem o#region/#endregion
bloco inteiro pela fonte de dados de sua preferência. - itera pela coleção resultante
- constrói a string desejada com 4 métodos diferentes,
minha preferência é o-f
operador de formato de string, mas muitas pessoas preferem a concatenação de strings. - envia cada um para o display
- adiciona uma linha divisória entre os grupos de resultados
o código ...
#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
}
saída ...
A.Bravo
A.Bravo
A.Bravo
A.Bravo
====================
C.Delta
C.Delta
C.Delta
C.Delta
====================
E.Foxtrot
E.Foxtrot
E.Foxtrot
E.Foxtrot
====================
Responder2
$firstname.substring(0,$i) +"."+ $lastname