Voir le titre.
J'ai spécifié les paramètres nécessaires dans la tête d'un script:
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
Quand je veux déboguer le script avec Powershell ISE: comment puis-je remplir ces paramètres?
Utilisez le volet de commandes. Ouvrez le fichier de script dans l'éditeur ISE, définissez les points d'arrêt (F9). Ensuite, dans le volet de commandes, tapez une commande appelant ce script avec les paramètres requis. Je ne pense pas qu'il existe une autre façon (intégrée) de faire cela dans ISE.
Il y a une autre manière. Vous pouvez utiliser la variable automatique $PSDefaultParameterValues
, Qui existe (depuis la v3) pour fournir de nouveaux arguments par défaut aux applets de commande et fonctions avancées (doesn ' t fonctionne avec des fonctions normales). Cependant, cela fonctionne pour les scripts, même lors du débogage dans ISE. Vous devez déclarer [CmdletBinding()]
ou [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 exécuteriez 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 sur un bloc de 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 que la touche doit avoir le nom du script (ou la fonction avancée ou l'applet de commande) suivi d'un deux-points puis le nom du paramètre. Vous pouvez définir des valeurs par défaut pour plusieurs scripts ou commandes, et plusieurs paramètres pour chacun (chaque paramètre est une nouvelle entrée de table).
En le faisant de cette façon, vous pouvez simplement frapper F5 pour exécuter votre script comme d'habitude. Les paramètres seront extraits de la variable, vous n'avez donc rien à taper.
D'autres cas d'utilisation pour $PSDefaultParameterValues
Peuvent être des personnalisations, comme si Get-History n'obtient que les 10 dernières entrées, sauf si vous spécifiez le paramètre -Count
Dans la commande. Étant donné que les entrées ne persistent que pour la session en cours, vous souhaitez ajouter des personnalisations à votre profil . Vous pouvez en savoir plus en tapant Get-Help about_Parameters_Default_Values
À l'invite ou afficher les mêmes informations sur TechNet .