es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Powershell reevalúa una cadena a un arreglo.

Tengo una serie de cadenas como esta que me gustaría que PowerShell reevaluara/convirtiera en una matriz (como sucedería si simplemente escribieras el mismo código en ISE sin las comillas simples).

$Cadena = ''@("a valor","b valor","c valor")''

¿Hay una manera más fácil de hacer esto que quitar las comillas simples (‘@’) y los paréntesis del interior de la cadena y utilizar -split?

Gracias de antemano por la ayuda.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Hay una forma más sencilla de convertir la cadena dada en un array utilizando PowerShell. Podemos utilizar el cmdlet Invoke-Expression para evaluar la cadena como un comando de PowerShell. Aquí tienes un ejemplo:

    $String = '@("a value","b value","c value")'
    $Array = Invoke-Expression $String
    

    El código anterior creará un array llamado $Array, que contendrá tres valores de cadena: “a value”, “b value” y “c value”.

    Ten en cuenta que aunque este método es más fácil que usar -split, puede ser potencialmente peligroso si la cadena de entrada no es confiable o validada correctamente, ya que puede ejecutar código arbitrario.

Comments are closed.