IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

fonction de création des Add-ons pour ISE [Trucs & Astuces]


Sujet :

Scripts/Batch

  1. #1
    Membre chevronné
    Avatar de I'm_HERE
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 013
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 013
    Points : 1 991
    Points
    1 991
    Par défaut fonction de création des Add-ons pour ISE
    salut,


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Function Add-AddOns
    {
    <# 
    .synopsis
     affiche et/ou créer des add-ons
    .parameter List
      affiche tous les noms des add-ons disponibles
    .parameter Name
      nom du add-on
    .parameter ShortCut
      un raccourcis pour le add-on
    .parameter Action
      un bloc de script qui va s'executer à l'appel du add-on
    .example
      Add-AddOns -List
    .example
     PS> Add-AddOns -n "Effacer le volet de Script" -s "ctrl+shift+b" -a {   
     >>   $psISE.CurrentFile.Editor.Clear()
     >>  }
    
      Créer un add-on pour effacer le volet script
    .example
      PS> Add-AddOns -RemoveAll
      
      Supprime tous les add-Ons 
    .example
      PS> Add-AddOns -RemoveItem 1
      
      Supprime l'add-on ayant l'index 1
    .example
      PS> $sb = { Invoke-Expression 'c:\script.ps1'  }
      PS> Add-AddOns "script.ps1" "Ctrl+shift+q" $sb
      
      Execute le script 'c:\script.ps1'
    #> 
      [CmdletBinding(DefaultParameterSetName='List')]
      Param(
       [Parameter(Mandatory=$False,Position=0,ParameterSetName='List')]
       [Switch]$List,
       [Parameter(Mandatory=$True,Position=0,ParameterSetName='RemoveAll')]
       [Switch]$RemoveAll,
       [Parameter(Mandatory=$True,Position=0,ParameterSetName='RemoveItem')]
       [int]$RemoveItem,
       [Parameter(Mandatory=$True,Position=0,ParameterSetName='Name')]
       [String]$Name,
       [Parameter(Mandatory=$false,Position=1,ParameterSetName='Name')]
       $ShortCut=$null,
       [Parameter(Mandatory=$True,Position=2,ParameterSetName='Name')]
       [ScriptBlock]$Action
      )
      if($Host.Name -ne 'Windows PowerShell ISE Host') 
      { throw "fonctionne uniquement dans l'environment ISE" }
      Switch ($PSCmdlet.ParameterSetName)
      {
         "List"
         {
            $Items = $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus
            for($i=0;$i -le $items.count-1;$i++) 
             { Select -inp $Items @{n="Index";e={$i}},
                @{n="Name";e={$_.Item($i).DisplayName}}   
             }
         }
         "RemoveAll"
         { 
           $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Clear() 
         }
         "RemoveItem"
         { 
           $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.RemoveAt($RemoveItem)
         }
         "Name"
         {
           $psISE.CurrentPowerShellTab.AddOnsMenu.Submenus.Add($Name,$Action,$ShortCut)
         }
      }
    }
    vous pouvez par la suite, mettre cette fonction dans votre profile_ise

  2. #2
    Rédacteur


    Profil pro
    Inscrit en
    Janvier 2003
    Messages
    7 171
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2003
    Messages : 7 171
    Points : 15 060
    Points
    15 060
    Billets dans le blog
    1
    Par défaut
    J'utiliserais de préférence plusieurs fonctions au lieu d'une seule fonction.
    Le jeux de paramètre List est plus un Get, RemoveItem est plus un Remove-ISEAddon, RemoveAll un plus un paramétre de type switch de la fonction précédente Remove-ISEAddon.
    Avec cette approche tu perds en cohérence, de plus l'aide en ligne, il me semble, n'est pas interrogeable sur les jeux de paramètres.
    Ce qui fait que pour appréhender ta fonction on doit parcourir l'aide, là où une profusion de fonctions permet un recherche + rapide :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    gcm -noun ise*
    gcm -noun *Addon*

Discussions similaires

  1. Oracle : hausse de 40% des prix des add-ons !
    Par Annaelle32 dans le forum Oracle
    Réponses: 17
    Dernier message: 05/08/2009, 10h11
  2. Oracle : hausse de 40% des prix des add-ons !
    Par Annaelle32 dans le forum Actualités
    Réponses: 12
    Dernier message: 20/07/2009, 16h08
  3. Création des bons index pour une requête
    Par genova dans le forum Requêtes
    Réponses: 2
    Dernier message: 21/12/2008, 14h47
  4. [C#][Débutant]Création d'add-in pour MVS 2005 Express ?
    Par Laurent Dardenne dans le forum C#
    Réponses: 5
    Dernier message: 12/04/2006, 11h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo