Geek School Learning PowerShell Variables, entrada y salida
A medida que nos alejemos de la simple ejecución de comandos y pasemos a escribir scripts completos, necesitará un lugar temporal para almacenar datos. Aquí es donde entran las variables.
Asegúrese de leer los artículos anteriores de la serie:
- Aprenda cómo automatizar Windows con PowerShell
- Aprendiendo a usar cmdlets en PowerShell
- Aprender a usar objetos en PowerShell
- Aprendizaje de formato, filtrado y comparación en PowerShell
- Aprende a usar el control remoto en PowerShell
- Uso de PowerShell para obtener información de la computadora
- Trabajando con Colecciones en PowerShell
Y estad atentos para el resto de la serie toda la semana..
Variables
La mayoría de los lenguajes de programación permiten el uso de variables, que son simplemente contenedores que contienen valores. En PowerShell, nosotros también tenemos variables y son muy fáciles de usar. Aquí es cómo crear una variable llamada "Nombre" y darle el valor "Taylor".
$ Nombre = "Taylor"
Lo primero que la mayoría de la gente parece preguntar es por qué colocamos un signo de dólar delante del nombre de las variables, y esa es realmente una muy buena pregunta. En realidad, el signo del dólar es solo una pequeña sugerencia de que queremos acceder al contenido de la variable (piense lo que está dentro del contenedor) y no al contenedor en sí. En PowerShell, los nombres de las variables no incluyen el signo de dólar, lo que significa que en el ejemplo anterior el nombre de las variables es en realidad "Nombre".
En PowerShell, puedes ver todas las variables que has creado en la variable PSDrive.
variable gci:
Lo que significa que también puede eliminar una variable del shell en cualquier momento:
Eliminar elemento-variable: \ Nombre
Las variables tampoco tienen que contener un solo objeto; Usted puede simplemente almacenar múltiples objetos en una variable. Por ejemplo, si desea almacenar una lista de procesos en ejecución en una variable, simplemente puede asignarle la salida de Get-Process.
$ Proc = Get-Process
El truco para entender esto es recordar que el lado derecho del signo igual siempre se evalúa primero. Esto significa que puede tener una tubería completa en el lado derecho si desea.
$ CPUHogs = Get-Process | Ordenar CPU - Descendente | seleccione -primero 3
La variable CPUHogs ahora contendrá los tres procesos en ejecución utilizando la mayoría de CPU.
Cuando tienes una variable que contiene una colección de objetos, hay algunas cosas que debes tener en cuenta. Por ejemplo, llamar a un método en la variable hará que se llame a cada objeto en la colección.
$ CPUHogs.Kill ()
Lo que mataría a los tres procesos en la colección. Si desea acceder a un solo objeto en la variable, debe tratarlo como una matriz.
$ CPUHogs [0]
Hacer eso te dará el primer objeto de la colección..
No te atrapes!
Las variables en PowerShell están mal escritas por defecto, lo que significa que pueden contener cualquier tipo de datos, esto parece captar a los recién llegados a PowerShell todo el tiempo.!
$ a = 10
$ b = '20'
Entonces tenemos dos variables, una contiene una cadena y la otra un entero. Entonces, ¿qué pasa si los añades? En realidad, depende de en qué orden los agregues..
$ a + $ b = 30
Mientras
$ b + $ a = 2010
En el primer ejemplo, el primer operando es un entero, $ a, por lo que PowerShell piensa que usted está tratando de hacer cálculos matemáticos y, por lo tanto, intenta convertir cualquier otro operando en enteros también. Sin embargo, en el segundo ejemplo, el primer operando es una cadena, por lo que PowerShell simplemente convierte el resto de los operandos en cadenas y las concatena. Los creadores de secuencias de comandos más avanzados previenen este tipo de gotcha al convertir la variable al tipo que están esperando.
[int] $ Number = 5
[int] $ Number = '5'
Lo anterior dará como resultado que la variable Número contenga un objeto entero con un valor de 5.
Entrada y salida
Debido a que PowerShell está diseñado para automatizar las cosas, usted querrá evitar pedirles a los usuarios información siempre que sea posible. Dicho esto, habrá ocasiones en las que no podrá evitarlo, y para esas ocasiones tenemos el cmdlet Read-Host. Usarlo es realmente simple:
$ FirstName = Read-Host -Prompt 'Ingrese su nombre'
Cualquier cosa que ingreses se guardará en la variable.
Escribir la salida es igual de fácil con el cmdlet Write-Output.
Write-Output "How-To Geek Rocks!"
Únete a nosotros mañana donde unimos todo lo que hemos aprendido juntos.!