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 las funciones normales). Sin embargo, funciona para scripts, incluso cuando se depura en ISE.
Así, por tu ejemplo,
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
tienes que ejecutar algo como esto en el símbolo del 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 a un bloque de script que se auto-ejecutar en tiempo de ejecución:
$PSDefaultParameterValues["ExampleScript.ps1:G_LOGFILE"]={
"Example-{0:yyMMddHHmm}.log" -f [datetime]::Now
}
La variable es una tabla hash y toda la sintaxis estándar appl ies, excepto 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 simplemente presionar F5 para ejecutar su secuencia de comandos como es normal. 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 el Get-History solo obtenga las últimas 10 entradas, a menos que especifique el -Count
parámetro 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 escribiendo Get-Help about_Parameters_Default_Values
en el indicador o ver la misma información en TechNet.
Este enfoque no me funcionaba porque mi ruta de archivos tenía espacios, la solución era usar la "función y comercial" de la siguiente manera: PS C: \ Windows> & ("c: \ mi carpeta \ script .ps1 ") -myArg 123 -otroArg abc –
Puede usar la ruta relativa:. \ script.ps1 –