Creo que no es necesaria una explicación, pero si has estado viviendo en un bunker toda tu vida, paso a resumirlo a modo de introducción. PowerShell es una consola de comandos para automatizar tareas y que apareció para desbancar a sus predecesoras, con mucha mas funcionalidad y sencillez.
Ventajas
- PowerShell viene de forma predeterminada desde Windows Vista, por lo tanto no es necesario la instalación de software de terceros para la ejecución de scripts como pasa con otros lenguajes.
- La programación es mucho mas sencilla que con la antigua consola, ya que puede recordar a otros lenguajes.
- Puede instalarse en Linux
Los scripts solo servirán para sistemas windows.- Los scripts realizados para versiones mas modernas de PS es muy probable que no funcionen correctamente en versiones mas antiguas de PS.
¿PowerShell usa comandos de Linux?
No. Esta consola trae una serie de ALIAS para que puedas usar las abreviaturas de los comandos de Linux. Para ver los alias, usa en la consola:
Get-Alias
Restricción
PS trae una restricción predeterminada para el bloqueo de ejecuciones delicadas, para ver, quitar y poner esta restricción:
Ver: Get-ExecutionPolicy
Modificar: Set-ExecutionPolicy [Unrestricted | AllSigned | RemoteSigned | Restricted]
¿Como se crean script en PowerShell?
Cuando vamos a crear un script con nuestro editor de texto favorito, lo vamos a guardar con la extensión ".ps1". Hay otras extensiones como los módulos de script (.psm1), pero no nos meteremos con eso. Una vez preparado todo vamos empezar con lo básico:
Get-Command Con este puedes listar todos los comandos y funciones que estan establecidos en el terminal.
Para empezar, veamos unos pocos cambios entre CMD y PowerShell:
| CMD | PowerShell | Ejemplo |
|---|---|---|
| echo %variable% | Write-Host $variable | Write-Host $pais |
| %variableSistema% | $env:variableSistema | $env:userprofile |
| set /p variable="Contenido?: " | $variable=read-host "Contenido?" | $pais=read-host "Donde naciste?" |
| %Date:~0,2%-%Date:~3,2%-%Date:~6,4% | (get-date).tostring('dd-MM-yyyy') | 05/12/2018 |
Muchos de los comandos de CMD siguen funcionando, pero lo interesante es que aprendas a adaptar todo a Powershell, porque con esta consola puedes hacer todo lo de CMD y más. Cosa que no puede decirse a la inversa.
Una cosa que aprenderás a medida vayas aprendiendo a usarlo, es que la forma de extraer información es muy similar a una query de SQL. Seleccionando lo que quieres obtener (get-xxx o select), filtrando la información (Where o -Filter) y ordenando (Sort-Object).
En cuanto a los condicionales, no se usan los simbolos "= > <", en este caso hay una nomenclatura diferente:
| -eq | Igual |
| -ne | No es igual |
| -lt | Menor que |
| -le | Menor o igual que |
| -gt | Mayor que |
| -ge | Mayor o igual que |
De resto y para ir terminando, es muy parecido a cualquier otro lenguaje. Bucles, condificonales, etc. Podéis ver ejemplos de utilidades que he programado en: https://github.com/Kevinsillo/powershell-utilities
Esto a sido todo, cualquier duda la dejáis en los comentarios y tratare de resolverla.
Fuentes:
https://4sysops.com/archives/powershell-comparison-operators-eq-lt-gt-contains-like-match/ https://es.wikipedia.org/wiki/Windows_PowerShell

0 comentarios:
Publicar un comentario