[Powershell] Paramètres forcés

Paramètres forcés [Powershell] - Divers - Programmation

Marsh Posté le 03-09-2019 à 15:15:02    

:hello:
 
Pour un script, je souhaite "hierarchiser" les paramètres.
param0 (facultatif) disponible qu'avec param1 et param2
param21 ou param22 (un des 2 obligatoire) disponibles qu'avec param2
 

Code :
  1. Param (
  2. [Parameter(ParameterSetName="param1" )]
  3. [Parameter(ParameterSetName="param2",Mandatory=$false)][string]$param0,
  4. [Parameter(ParameterSetName="param1",Mandatory=$true)][switch]$param1,
  5. [Parameter(ParameterSetName="param2",Mandatory=$true)][switch]$param2,
  6. [Parameter(ParameterSetName="param2" )][Parameter(ParameterSetName="param21",Mandatory=$true)][string]$param21,
  7. [Parameter(ParameterSetName="param2" )][Parameter(ParameterSetName="param22",Mandatory=$true)][string]$param22
  8. )


 
L'aide donne :

Code :
  1. test.ps1 -param2 [-param0 <string>] [-param21 <string>] [-param22 <string>] [<CommonParameters>]
  2. test.ps1 -param1 [-param0 <string>] [<CommonParameters>]
  3. test.ps1 -param21 <string> [<CommonParameters>]
  4. test.ps1 -param22 <string> [<CommonParameters>]


 
Il est possible de passer en parameter -param21 et 22 seuls :/
Comment les forcer à être utiliser qu'avec -param2 ?
 
:jap:

Reply

Marsh Posté le 03-09-2019 à 15:15:02   

Reply

Marsh Posté le 10-09-2019 à 11:21:46    

:(

Reply

Marsh Posté le 26-06-2020 à 08:42:38    

Bonjour
Ce sujet date un peu (beaucoup) mais peut être que cela en aidera malgré tout.
Est ce que ceci répond à ta problématique ?

Code :
  1. Param (
  2. [Parameter(ParameterSetName="P1" )][Parameter(ParameterSetName="P2.1" )][Parameter(ParameterSetName="P2.2" )][string]$p0,
  3. [Parameter(ParameterSetName="P1", Mandatory=$true)][switch]$p1,
  4. [Parameter(ParameterSetName="P2.1", Mandatory=$true)][Parameter(ParameterSetName="P2.2", Mandatory=$true)][switch]$p2,
  5. [Parameter(ParameterSetName="P2.1", Mandatory=$true)][string]$p21,
  6. [Parameter(ParameterSetName="P2.2", Mandatory=$true)][string]$p22
  7. )


 
Résultat après un Get-Help :
test-param.ps1 -p2 -p22 <string> [-p0 <string>] [<CommonParameters>]
test-param.ps1 -p2 -p21 <string> [-p0 <string>] [<CommonParameters>]
test-param.ps1 -p1 [-p0 <string>] [<CommonParameters>]

Reply

Marsh Posté le 26-06-2020 à 11:08:09    

:jap:

 

Le script tourne finalement en tâche planifiée.
Je ne sais plus si j'avais trouvé ou si j'avais laissé tomber  [:tinostar]
 Mais effectivement ça peut aider quelqu'un d'autre :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed