Búsqueda de sitios web

¿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
Phoenix

En 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, $zip

Puede 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, $zip

Puede 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, $zip

Ejecuté 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.

Artículos relacionados