Il existe un autre moyen. Vous pouvez utiliser le $PSDefaultParameterValues
variable automatique, qui existe (depuis la v3) pour fournir de nouveaux arguments par défaut aux cmdlets et aux avancé (ne fonctionne pas avec les fonctions normales). Cependant, cela fonctionne pour les scripts, même lors du débogage dans ISE. Vous devez déclarer [CmdletBinding()]
o [Parameter()]
comme vous le feriez pour une fonction avancée.
Donc, pour votre exemple,
[CmdletBinding()]
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
vous devez exécuter quelque chose comme ceci sur l'invite ISE :
$PSDefaultParameterValues.add("ExampleScript.ps1:G_ARCHIVE","File-to-upload.txt")
$PSDefaultParameterValues.add("ExampleScript.ps1:G_LOGFILE","Example.log")
Vous pouvez également définir la valeur du paramètre dans un bloc script qui s'exécutera automatiquement au moment de l'exécution :
$PSDefaultParameterValues["ExampleScript.ps1:G_LOGFILE"]={
"Example-{0:yyMMddHHmm}.log" -f [datetime]::Now
}
La variable est une table de hachage et toute la syntaxe standard s'applique, sauf l'élément clé doit comporter le nom du script (ou de la fonction avancée ou du cmdlet) suivi de deux points puis du nom du paramètre. Vous pouvez définir des valeurs par défaut pour plusieurs scripts ou commandes, et plusieurs paramètres pour chacun d'eux (chaque paramètre est une nouvelle entrée de table).
En procédant de cette façon, vous pouvez juste taper F5 pour exécuter votre script comme d'habitude. Les paramètres seront pris dans la variable, donc vous n'avez pas besoin de taper quoi que ce soit.
Autres cas d'utilisation de $PSDefaultParameterValues
Il peut y avoir des personnalisations, comme par exemple faire en sorte que la commande Get-History n'obtienne que les 10 dernières entrées, à moins que vous ne spécifiiez l'attribut -Count
dans la commande. Étant donné que les entrées ne persistent que pendant la session en cours, il est préférable d'ajouter des personnalisations à la commande profil . Vous pouvez en savoir plus en tapant Get-Help about_Parameters_Default_Values
à l'invite ou consultez les mêmes informations sur TechNet .