Duda | Se pueden generar variables con un for? y usarlas despues?? | PS

Iniciado por cat26, 9 Septiembre 2019, 10:22 AM

0 Miembros y 1 Visitante están viendo este tema.

cat26

Hola, aqui molestando de nuevo, buen día a todos

Lo que estoy haciendo es con un for variables, el problema que al mandarlas a llamar no me las llama como si fueran variables , solo me las crea como texto o no se que sera, creó las variables con un numero según el for, y si yo concateno  con algo, me dice que no la eh declarado y me di cuenta y en la consola cuando declaro una variable yo mismo sale en  verde pero cuando lo trato de hacer con el for me sale en amarillo como cualquier texto. Entonces no se hay un comando para llamarlos, o algún procedimiento para usarlos como variable o simplemente no se puede hacer eso? gracias y saludos
Saludos
Código (powershell) [Seleccionar]

$arreglo = New-Object System.Collections.ArrayList
for ($x=1; $x -le 5; $x++) {
$arreglo.Add("`$variable$x = Write-Host 'Hola'")
}
::como lo llamaria para que lo leyera la consola como comando? y no como texto?
::que cuando yo le diga arreglo[0]
::me diga Hola

@XSStringManolo

No me suena que se pueda hacer.
El tema es la las variables que creas dentro del for se destrullen tras cada iteración, asique tampoco te serviría. Usa un array sin más.

Shell Root

Puedes manejar un array indexado y con el foreach ir recorriendo cara index para mostrar su valor. Por ejemplo:
Código (powershell) [Seleccionar]
$array = 1,2,3,4,5
foreach (item in $array) { $item }


O usar HashTable
Código (powershell) [Seleccionar]
$hash = @{Clave=Valor; Clave2=Valor2; Clave3=Valor3}
$hash = [Ordered]@{Clave=Valor; Clave2=Valor2; Clave3=Valor3}


:https://www.maquinasvirtuales.eu/curso-basico-de-powershell-arrays-y-hashtables/
Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.

EdePC

Saludos,

- Me parece que cada quien entiende diferente lo que quieres lograr XD, alguno dará en el clavo. Lo que entiendo yo es que quieres guardar instrucciones como texto en tu ArrayList y luego interpretar dicho texto para que ejecute la instrucción.

Código (powershell) [Seleccionar]
$arreglo = New-Object System.Collections.ArrayList
For ( $x = 1; $x -le 5; $x++ ) {
  $arreglo.Add("`$variable$x = Write-Host 'Hola'")
}

Clear-Host
Invoke-Expression $arreglo[3]





Mod: Por favor, utilizar las etiquetas GeSHi.

cat26

Justo lo que buscaba :D, muchas gracias a los demás que respondieron
Cita de: EdePC en  9 Septiembre 2019, 17:38 PM
Saludos,

- Me parece que cada quien entiende diferente lo que quieres lograr XD, alguno dará en el clavo. Lo que entiendo yo es que quieres guardar instrucciones como texto en tu ArrayList y luego interpretar dicho texto para que ejecute la instrucción.

Código (powershell) [Seleccionar]
$arreglo = New-Object System.Collections.ArrayList
For ( $x = 1; $x -le 5; $x++ ) {
  $arreglo.Add("`$variable$x = Write-Host 'Hola'")
}

Clear-Host
Invoke-Expression $arreglo[3]





Mod: Por favor, utilizar las etiquetas GeSHi.