tutorial script run ejemplos ejecutar desde crear comandos bat basicos powershell parameter-passing powershell-ise

ejemplos - run powershell script



¿Cómo pasar los parámetros necesarios al script en Powershell ISE? (4)

  1. Abra el script (myscript.ps1) en Windows Powershell ISE
  2. Presione F9 en la variable que desea inspeccionar (depurar). Por ejemplo, segunda línea en la muestra a continuación donde se asigna la variable $ outputText
  3. En la ventana de shell, proporcione la ruta relativa de la secuencia de comandos junto con el valor de param. Por ejemplo:. / Myscript.ps1 "my value"
  4. Presiona Intro (no necesitas presionar F5 )
  5. Podrá ver los puntos de interrupción de depuración resaltados con color amarillo. Coloque el cursor sobre la variable deseada para inspeccionar el valor actual.

Ver título.

Especifiqué los parámetros necesarios en el encabezado de un script:

param ($G_ARCHIVE = $(throw "Need file to upload!"), $G_LOGFILE = $(throw "Need logfile!"))

Cuando quiero depurar el script con Powershell ISE: ¿cómo puedo llenar estos parámetros?


Hay otra manera. Puede usar la variable automática $PSDefaultParameterValues , que existe (desde v3) para proporcionar nuevos argumentos predeterminados a cmdlets y funciones avanzadas (no funciona con funciones normales). Sin embargo, funciona para scripts, incluso cuando se depura en ISE. [CmdletBinding()] declarar [CmdletBinding()] o [Parameter()] como lo haría para una función avanzada.

Entonces para su ejemplo,

[CmdletBinding()] param ($G_ARCHIVE = $(throw "Need file to upload!"), $G_LOGFILE = $(throw "Need logfile!"))

usted ejecutaría algo como esto en el indicador de ISE:

$PSDefaultParameterValues.add("ExampleScript.ps1:G_ARCHIVE","File-to-upload.txt") $PSDefaultParameterValues.add("ExampleScript.ps1:G_LOGFILE","Example.log")

También podría establecer el valor del parámetro en un bloque de script que se autoejecutará en tiempo de ejecución:

$PSDefaultParameterValues["ExampleScript.ps1:G_LOGFILE"]={ "Example-{0:yyMMddHHmm}.log" -f [datetime]::Now }

La variable es una tabla hash y se aplica toda la sintaxis estándar, excepto que la clave debe tener el nombre del script (o función avanzada o cmdlet) seguido de dos puntos y luego el nombre del parámetro. Puede establecer valores predeterminados para múltiples scripts o comandos, y múltiples parámetros para cada uno (cada parámetro es una nueva entrada de tabla).

Al hacerlo de esta manera, puede presionar F5 para ejecutar su script como de costumbre. Los parámetros se tomarán de la variable, por lo que no tiene que escribir nada.

Otros casos de uso para $PSDefaultParameterValues pueden ser personalizaciones, como que Get-History obtenga solo las últimas 10 entradas, a menos que especifique el parámetro -Count en el comando. Debido a que las entradas solo persisten para la sesión actual, le recomendamos agregar personalizaciones a su profile . Puede leer más al escribir Get-Help about_Parameters_Default_Values en el indicador o ver la misma información en TechNet .


Hay una manera mucho más simple de configurar los parámetros necesarios en ISE:

Antes de presionar F5 en ISE, configure el parámetro que necesita. Por lo general, comento el parámetro que necesito, por ejemplo: # $ G_ARCHIVE = "C: / Temp / TestFile_001.txt"

Selecciono todo después de "#" y presiono F8 . La próxima vez que depure la secuencia de comandos con F5 , el parámetro se establece en el valor que estoy probando, no es necesario pasar los parámetros a través de la línea de comandos.


Use el panel de comando. Abra el archivo de script en el editor ISE, configure los puntos de interrupción (F9). Luego, en el panel de comandos, escriba un comando que invoque este script con los parámetros requeridos. No creo que haya otra forma (integrada) de hacer esto en ISE.