PowerShell.
Parte 2
Windows PowerShell ISE
-Windows PowerShell Integrated Scripting Environment (ISE) es una aplicación
host de Windows PowerShell. En el ISE, puede ejecutar comandos y escribir,
comprobar y depurar scripts en una interfaz gráfica de usuario único basado
en Windows.
-Para iniciar Windows PowerShell ISE:
-Haga clic en Inicio, seleccione Windows PowerShell y, después, haga clic
en Windows PowerShell ISE.
-Como alternativa, puede escribir powershell_ise.exe en cualquier shell
de comandos o en el cuadro Ejecutar.
Si al ejecutar un script en ISE sale el error de que en el sistema esta
deshabilitada la ejecución de scripts. Abrimos el Windows PowerShell como
administrador y ejecutamos el comando “Get-ExecutionPolicy” nos tendría que
devolver “Unrestricted” o lo que es lo mismo “Restringido”. Para cambiar esta
configuración basta con ejecutar “Set-ExecutionPolicy Unrestricted”.
PowerShell by JGD
Los bucles: while
-Un bucle es una estructura repetitiva que permite ejecutar varias veces las
instrucciones que contiene:
-While
While (<condicion>)
{
#bloque de instrucciones
}
$numero = 0
$max = 99
While ($numero –lt $max)
{
Write-Host $numero
$numero ++
}
PowerShell by JGD
Los bucles
PowerShell by JGD
Los bucles: For
- For (<inicial>;<condición>;<incremento>)
-{
-Bloque de instrucción
-}
For ($i=0; $i –le 99)
{
Write-Host $i
}
PowerShell by JGD
Los bucles: Foreach-Object
-Hablando con propiedad Foreach-Object es un commandlet y no un bucle.
Permite recorrer los valores contenidos en una colección:
-Foreach ($<elemento> in $<colección>)
{
#bloque de instrucciones
}
Ejemplo (generar el siguiente script en el ISE y ejecutar)
Foreach ($element in Get-Process)
{
Write-Host “$($[Link]) iniciado el: $($[Link])”
}
PowerShell by JGD
Los bucles: Foreach-Object
PowerShell by JGD
Estructura condicional If, Else, Elseif
Ejemplo:
If ( ($var1 –eq 15) –and ($var2 –eq 18) )
{
# Bloque de instrucciones 1
}
ElseIf ($var1 –ge 20 )
{
# Bloque de instrucciones 2
}
Else
{
# Bloque de instrucciones 3
}
Utiliza el comando $Error para ver la lista de errores y
$Error[0] para el último error producido.
PowerShell by JGD
Las funciones
-En PowerShell, igual que en numerosos lenguajes, una función es un conjunto
de instrucciones a los que se le da un nombre y se pueden llamar repetidas
veces.
-Permiten hacer referencia a ella.
Ejemplo:
Function Hola
{
$date = Get-Date
Write-Host “Hola, estamos a fecha $date”
}
Ejecutamos: PS > Hola
Y mostraría: Hola, estamos a fecha xxxx
PowerShell by JGD
Práctica de archivos y fechas
1. Crear en el directorio c:\temp el archivo [Link]
2. Mostrar el archivo y las fechas CreationTime LastAccessTime
LastWriteTime
3. Define tres variables para cada una de las fechas y asigna una fecha
distinta a cada una
4. Asigna las variables a las fechas correspondientes del archivo
5. Mostrar de nuevo el archivo y las fechas CreationTime
LastAccessTime LastWriteTime
Utiliza el comando Get-History o ghy para ver el histórico de
comandos introducidos
PowerShell by JGD
Práctica de archivos y fechas
Solución:
1 - New-Item -Name [Link] -Type File
2 - Get-ChildItem c:\temp -File | select name, *time
3 $fecha_creacion = (Get-Date -Year 1988 -Month 1 -Day 1 -Hour 0 -Minute 0 -
Second 0)
$fecha_ultimo_acceso = (Get-Date -Year 2019 -Month 1 -Day 1 -Hour 0 -Minute 0 -
Second 0)
$fecha_ultima_escritura = (Get-Date -Year 2019 -Month 2 -Day 1 -Hour 0 -Minute 0
-Second 0)
4 $Archivo = Get-Item [Link]
$[Link] = $fecha_creacion
$[Link] = $fecha_ultimo_acceso
$[Link] = $fecha_ultima_escritura
5 Get-ChildItem c:\fso -File | select name, *time
PowerShell by JGD