8
votes

Versions plus courtes de PowerShell Cmdlet Paramètres

Compte tenu de mes recherches, je ne crois pas que ce qui suit est facilement accompli, voire du tout. En dernier recours, cependant, je pensais que je vérifiais ici.

à PowerShell 2.0, je voudrais un moyen de réduire les noms de paramètres (ennuyeux) de différents cmdlets. Je voudrais un contrôle absolu sur ce que la version sténiande ressemble. (Par opposition à être un esclave sur le système d'abréviation de paramètre PS utilise.) P>

Donc, par exemple, j'aimerais pouvoir faire quelque chose comme ceci: P>

# Command goes on this first line to alias "-ForegroundColor" to "-fg"
# Command goes on this second line to alias "-BackgroundColor" to "-bg"
Wr-te-Host -fg yellow -bg black "Parameter aliases now work just like I want."


2 commentaires

Il vous suffit de taper suffisamment de lettres d'un paramètre pour le désambigucher: écriture-unf vert -b bleu bonjour!


@Larold, je pense qu'il y a une faute de frappe dans votre extrait de code. Je ne peux pas le réparer parce que c'est juste 1 caractère (min 6 à éditer).


4 Réponses :


14
votes

Vérifiez ce script: get-paramètre.ps1

point- Source et exécuter ce qui suit, il donne une mine d'informations sur les paramètres de commande. Jetez un coup d'œil à la colonne Alias, il affichera tous les alias de paramètres intégrés et calcule le nom le plus court que vous pouvez utiliser pour un paramètre: xxx


0 commentaires

2
votes

Quelque chose comme ça vous donnerait les alias existants pour les paramètres d'une cmdlet: xxx

Je ne vois pas vraiment de manière à "contrôler" les alias.


4 commentaires

C'est parce que, en général, ils ne sont pas des alias. C'est un algorithme de désambiguement adaptatif. Dans les fonctions avancées que vous vous écrivez peut spécifier des alias pour les paramètres, mais même sans spécifier quoi que ce soit, ils ne seront toujours pas ambiguës par eux-mêmes.


@Ebgreen - Désolé, je ne comprends pas ton point. Selon la question de l'OP, -foregroundColor doit avoir un alias fg alors que f , fo , pour etc. sont utilisés pour la désambiguïté. Est-ce le même point que vous faites?


Meh, je n'étais pas clair. Rien de nouveau là-bas. Je suppose que j'essayais de faire valoir que la plupart des gens pensent que des alias des paramètres ne sont vraiment que l'algorithme de désambiguïssement. Comme votre code montre, il existe également des alias réels. Je suppose que le retrait de mon commentaire devrait être que beaucoup de ce que les gens pensent souvent que des alias ne le sont pas vraiment; Vous ne pouvez pas ajouter d'alias sur des cmdlets intégrés; Vous pouvez créer des alias sur vos propres fonctions / cmdlets.


@Ebgreen - ok a plus de sens maintenant :)



14
votes

Vous pouvez créer des paramètres alias pour vos propres fonctions, comme: xxx

Vous pouvez ensuite utiliser cette technique avec CMDlets de proxy Pour ajouter vos propres alias à des cmdlets existants. Cependant, je trouve suffisamment suffisant d'utiliser des paramètres existants de paramètres / noms de paramètres raccourcis dans la console, et vous ne devriez pas utiliser des alias dans des scripts, donc je ne suis pas sûr que cela vaudrait l'effort. J'irais avec la réponse de @ Shay


0 commentaires

2
votes

Les paramètres d'une cmdlet donné n'ont besoin que d'en avoir assez pour le rendre distinct dans cette cmdlet. Des choses comme la propriété Get-Member -M (-M signifie Memberype, qui est le seul paramètre "M" pour cette cmdlet).

Si je tape une doublure rapide, j'ai tendance à utiliser uniquement les 3 premiers caractères du paramètre. Cela fonctionne la plupart du temps et est similaire à la CLI de Cisco si vous avez déjà travaillé avec cela. De temps en temps, je vais tabuler le paramètre lors du débogage, pour vous assurer que je fais référencer le bon.

imo, j'essaie de ne pas le faire à beaucoup dans des scripts. J'essaie de rendre mes scripts aussi lisibles que possible pour les autres personnes qui peuvent ne pas connaître les alias de chaque cmdlet. Il aide à passer des scripts à d'autres personnes. Si vous lisez Don Jones Blog / Articles, il en parle aussi de cela. Cependant, si le script est juste pour moi, je le fais aussi court et rapide que possible.


0 commentaires