Contenidos
Variables
Los programas cuando se ejecutan y se convierten en procesos se almacenan en la memoria y además almacenan valores temporales que son necesarios para la ejecución correcta de los procesos.
En PowerShell se pueden utilizar datos y almacenarlos en memoria hasta que se cierra PowerShell.
Una variable corresponde a un área reservada en la memoria principal del ordenador que puede cambiar o no su valor durante la ejecución del proceso que la crea.
Constantes
Es un tipo de variable que no cambia el valor durante la ejecución del proceso.
Ámbito
El ámbito de una variable (llamado «scope» en inglés) es la zona del programa en la que se define la variable.
Tipos
En PowerShell no es necesario establecer el tipo de dato aunque se puede hacer indicando el tipo de variable entre corchetes [ ].
1 2 3 | #Variable tipo numérica [Int]$num=5 $num |
Numéricas
1 2 3 | #Enteros $num=5 $num |
Caracteres
1 2 3 | #Caracteres $car='c' $car |
Booleanos
1 2 | $true $false |
Fechas
1 2 | $fecha=Get-Date $fecha.Date |
Arrays
1 2 3 | $arraynumeros='12345' Write-Host $arraynumeros Write-Host $arraynumeros[1] |
Cadenas
1 2 3 | #Cadenas de caracteres $cad='hola' $cad |
Ficheros
1 2 3 4 | #Escribir en fichero "Hola" | out-file hola.txt #Leer de fichero Get-Content hola.txt |
Operaciones aritméticas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | #Sumar números $num1=5 $num2=6 $resultado=$num1+$num2 "La suma del número $num1 y el número $num2 es: " + $resultado #Restar números $num1=10 $num2=6 $resultado=$num1-$num2 "La resta del número $num1 y el número $num2 es: " + $resultado #Multiplicar números $num1=3 $num2=6 $resultado=$num1*$num2 "La multiplicación del número $num1 y el número $num2 es: " + $resultado #Dividir números $num1=10 $num2=5 $resultado=$num1/$num2 "La división del número $num1 entre el número $num2 es: " + $resultado #Resto de la división de números $num1=4 $num2=2 $resultado=$num1%$num2 "El resto de dividir el número $num1 entre el número $num2 es: " + $resultado |
Operaciones lógicas
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #and (1 -eq 1) -And (2 -eq 2) #La primera operación de comparación (1 -eq 1) es True #La segunda operación de comparación (2 -eq 2) es True #El resultado de juntar las dos operaciones es True ya que True y True es True #or (1 -eq 1) -or (2 -eq 2) #La primera operación de comparación (1 -eq 1) es True #La segunda operación de comparación (2 -eq 2) es True #El resultado de juntar las dos operaciones es True ya que True o True es True #not (1 -eq 1) -And -Not (2 -eq 2) #La primera operación de comparación (1 -eq 1) es True #La segunda operación de comparación (2 -eq 2) es Not True es decir False #El resultado de juntar las dos operaciones es False ya que True y False es False |
Operaciones de comparación
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | #-eq (Equal to -> Igual a) $numero=1 $resultado=$numero -eq 1 #El resultado es True, esto significa que el resultado es verdadero $resultado #-lt (Less than -> Menos que) $numero1=1 $numero2=2 $resultado=$numero1 -lt $numero2 #El resultado es True, esto significa que el resultado es verdadero y que el número 2 es menor que el número 1 $resultado #-gt (Greater than -> Más que) $numero1=1 $numero2=2 $resultado=$numero1 -gt $numero2 #El resultado es False, esto significa que el resultado es falso y que el número 1 no es mayor que el número 2 $resultado #-ge (Greater than or Equal to -> Mayor o igual a) $numero1=1 $numero2=2 $resultado=$numero1 -ge $numero2 #El resultado es False, esto significa que el resultado es falso y que el número 1 no es mayor o igual que el número 2 $resultado #-le (Less than or equal to - Menor o igual a) $numero1=1 $numero2=2 $resultado=$numero1 -le $numero2 #El resultado es True, esto significa que el resultado es verdadero y que el número 1 es menor o igual que el número 1 $resultado #-ne (Not equal to - No es igual a) $numero=1 $resultado=$numero -ne 1 #El resultado es False, esto significa que es falso que el número 1 no sea igual al número 1 $resultado |
Sentencias condicionales
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | #if $valor=56 if($valor -eq 5) { Write-Host $valor } #if-else $valor=56 if($valor -eq 5) { Write-Host $valor } else { Write-Host "Distinto de 5" } |
Sentencias de repetición
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 | #while $i=1 while($i -lt 11){ $i $i++ } #do-while $i=1 do{ $i $i++ }while($i -lt 11) #for for($i=1;$i -lt 11;$i++) { $i } #foreach foreach($i in 1..10) { $i } #foreach abreviado 1..10 | % {$_} |
Funciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | function usuario($user) { #Introducir usuario y decir si es correcto if($user -eq "pepito") { Write-Host "Correcto" } else { Write-Host "No correcto" } } usuario pepito usuario pepitos |