Estoy intentando cambiar un script existente para que mi nombre de usuario sea nombre, punto inicial, apellido, por ejemplo: El nombre de usuario de John Doe será j.doe. El script actual funciona (sin .) como: $firstname.substring(0,$i) + $apellido
gracias.
Respuesta1
Hay varias formas de construir esa cadena. [sonrisa] aquí hay 4 de ellos que me vienen a la mente.
qué hace el código...
- La lectura falsa en un archivo CSV con los datos de Nombre y Apellido
reemplaza el#region/#endregion
bloque completo con su fuente de datos preferida. - itera a través de la colección resultante
- construye la cadena deseada con 4 métodos diferentes.
Mi preferencia es el-f
operador de formato de cadena, pero mucha gente prefiere la concatenación de cadenas. - envía cada uno a la pantalla
- agrega una línea divisoria entre los grupos de resultados
el 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
}
producción ...
A.Bravo
A.Bravo
A.Bravo
A.Bravo
====================
C.Delta
C.Delta
C.Delta
C.Delta
====================
E.Foxtrot
E.Foxtrot
E.Foxtrot
E.Foxtrot
====================
Respuesta2
$firstname.substring(0,$i) +"."+ $lastname