¿Cómo dividir una cadena en variables en PowerShell?
Mientras trabajaba en un script de automatización de PowerShell, se me pidió que dividiera una cadena en variables. Probé diferentes métodos. En este script de PowerShell, explicaré varias formas de dividir cadenas en variables en PowerShell usando varios métodos con ejemplos.
Para dividir una cadena en variables en PowerShell, puede utilizar varios métodos. El operador -split divide una cadena en una matriz según un delimitador especificado, como $cities -split “, ” para valores separados por comas. El método Split de la clase String permite múltiples delimitadores, por ejemplo, $info.Split(@(“|”, “, “)). Para un análisis más complejo, ConvertFrom-String puede transformar una cadena delimitada en un objeto con propiedades con nombre, y las expresiones regulares con -match pueden capturar partes específicas de una cadena en variables separadas.
Dividir una cadena en variables en PowerShell
A continuación se muestran varios métodos para dividir una cadena en variables en PowerShell usando diferentes ejemplos.
1. Usando el operador -split
El operador -split es uno de los métodos más sencillos para dividir cadenas en variables en PowerShell. Divide una cadena en una matriz según un delimitador que especifique.
A continuación se muestra un ejemplo de cómo dividir una cadena en variables en PowerShell.
$cities = "New York, Los Angeles, Chicago, Houston, Phoenix"
$cityArray = $cities -split ", "
$city1 = $cityArray[0]
$city2 = $cityArray[1]
$city3 = $cityArray[2]
$city4 = $cityArray[3]
$city5 = $cityArray[4]
$city1, $city2, $city3, $city4, $city5
Producción :
New York
Los Angeles
Chicago
Houston
PhoenixEn este ejemplo, la cadena se divide en cada coma seguida de un espacio y se almacena en variables.
Aquí puede ver el resultado en la siguiente captura de pantalla:
Lea ¿Cómo dividir una cadena por Word en PowerShell?
2. Usando el método dividido
PowerShell también le permite utilizar el método Split de la clase String para dividir una cadena y almacenarla en variables.
Aquí hay un ejemplo.
$info = "John Doe|123 Main St|New York, NY|10001"
$delimiter = @("|", ", ")
$infoArray = $info.Split($delimiter, [System.StringSplitOptions]::None)
$name = $infoArray[0]
$address = $infoArray[1]
$city = $infoArray[2]
$state = $infoArray[3]
$zip = $infoArray[4]
$name, $address, $city, $state, $zipPuede ver el resultado en la captura de pantalla a continuación después de ejecutar el script usando el código VS.
3. Usando ConvertFrom-String
El cmdlet ConvertFrom-String es otro método para dividir una cadena en variables en PowerShell.
Aquí hay un código completo:
$data = "Name: John Doe, Address: 123 Main St, City: New York, State: NY, Zip: 10001"
$parsedData = $data | ConvertFrom-String -PropertyNames 'Name', 'Address', 'City', 'State', 'Zip'
$name = $parsedData.Name
$address = $parsedData.Address
$city = $parsedData.City
$state = $parsedData.State
$zip = $parsedData.Zip
$name, $address, $city, $state, $zipPuede ver el resultado en la captura de pantalla a continuación después de ejecutar el script de PowerShell usando el código VS.
Lea ¿Cómo dividir cadenas mediante nuevas líneas en PowerShell?
4. Usar expresiones regulares con -match
Aquí hay otro ejemplo de cómo usar expresiones regulares con -match para dividir una cadena en variables en PowerShell.
Aquí hay un script de PowerShell completo.
$address = "John Doe, 123 Main St, New York, NY 10001"
if ($address -match "^(.*), (.*), (.*), (.*) (\d+)$") {
$name = $matches[1]
$street = $matches[2]
$city = $matches[3]
$state = $matches[4]
$zip = $matches[5]
}
$name, $street, $city, $state, $zipEjecuté el script de PowerShell anterior y puedes ver el resultado en la siguiente captura de pantalla:
Conclusión
En este tutorial de PowerShell, he explicado cómo dividir una cadena en variables en PowerShell utilizando varios métodos. Espero que esto ayude.



