Question
[résolut]fonction avec parametre dynamiques
- Marc
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 90
- Remerciements reçus 0
il y a 9 ans 1 mois #23482
par Marc
[résolut]fonction avec parametre dynamiques a été créé par Marc
Bonjour a tous.
je ne comprend pas comment fonctionnent les paramètres dynamiques.
Voici mon exemple:
[code:1]
function coucou
{
[CmdletBinding()]
param
(
[parameter(Mandatory=$false)]
[switch]$go
)
DynamicParam
{
if ($go)
{
$dynparam = New-Object System.Management.Automation.RuntimeDefinedParameter('text',[string])
return $dynparam
}
}
if($go)
{
Write-Host $text
}
else
{
Write-Host 'pas coucou'
}
}
[/code:1]
J'étais confiant jusqu'à ce que powershell me réponde ça :
[code:1]
Au caractère Ligne:2 : 1
+ {
+ ~
Accolade fermante « } » manquante dans le bloc d’instruction.
Au caractère Ligne:27 : 1
+ }
+ ~
Jeton inattendu « } » dans l’expression ou l’instruction.
+ CategoryInfo : ParserError: (:«») [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndCurlyBrace
[/code:1]
Je sèche si quelqu'un peut m'indiquer comment cela fonctionne, je lui serais très reconnaissant.
Merci.<br><br>Message édité par: marcci, à: 20/04/17 12:49
je ne comprend pas comment fonctionnent les paramètres dynamiques.
Voici mon exemple:
[code:1]
function coucou
{
[CmdletBinding()]
param
(
[parameter(Mandatory=$false)]
[switch]$go
)
DynamicParam
{
if ($go)
{
$dynparam = New-Object System.Management.Automation.RuntimeDefinedParameter('text',[string])
return $dynparam
}
}
if($go)
{
Write-Host $text
}
else
{
Write-Host 'pas coucou'
}
}
[/code:1]
J'étais confiant jusqu'à ce que powershell me réponde ça :
[code:1]
Au caractère Ligne:2 : 1
+ {
+ ~
Accolade fermante « } » manquante dans le bloc d’instruction.
Au caractère Ligne:27 : 1
+ }
+ ~
Jeton inattendu « } » dans l’expression ou l’instruction.
+ CategoryInfo : ParserError: (:«») [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndCurlyBrace
[/code:1]
Je sèche si quelqu'un peut m'indiquer comment cela fonctionne, je lui serais très reconnaissant.
Merci.<br><br>Message édité par: marcci, à: 20/04/17 12:49
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 9 ans 1 mois #23483
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:fonction avec parametre dynamiques
Salut,
tu trouveras un exemple documenté dans ce tutoriel .
tu trouveras un exemple documenté dans ce tutoriel .
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
- Marc
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 90
- Remerciements reçus 0
il y a 9 ans 1 mois #23485
par Marc
Réponse de Marc sur le sujet Re:fonction avec parametre dynamiques
Merci Laurent,
suite à cette lecture tout devient plus clair.
[code:1]
function coucou
{
[CmdletBinding()]
param
(
[parameter(Mandatory=$false)]
[switch]$go
)
DynamicParam
{
if ($go)
{
$attribut = New-Object System.Management.Automation.ParameterAttribute
$attribut.Mandatory = $true
$attribut.Position = 2
$attributCollection = New-Object 'System.Collections.ObjectModel.Collection[System.Attribute]'
$attributCollection.Add($attribut)
$dynparam = New-Object System.Management.Automation.RuntimeDefinedParameter('text',[string],$attributCollection)
$paramDictionary = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary
$paramDictionary.Add(\"text\", $dynparam)
return $paramDictionary
}
}
begin
{
if($go)
{
Write-Host $PSBoundParameters.text
}
else
{
Write-Host 'pas coucou'
}
}
}
[/code:1]
C'est mieux, je vais pouvoir avancer.
suite à cette lecture tout devient plus clair.
[code:1]
function coucou
{
[CmdletBinding()]
param
(
[parameter(Mandatory=$false)]
[switch]$go
)
DynamicParam
{
if ($go)
{
$attribut = New-Object System.Management.Automation.ParameterAttribute
$attribut.Mandatory = $true
$attribut.Position = 2
$attributCollection = New-Object 'System.Collections.ObjectModel.Collection[System.Attribute]'
$attributCollection.Add($attribut)
$dynparam = New-Object System.Management.Automation.RuntimeDefinedParameter('text',[string],$attributCollection)
$paramDictionary = New-Object System.Management.Automation.RuntimeDefinedParameterDictionary
$paramDictionary.Add(\"text\", $dynparam)
return $paramDictionary
}
}
begin
{
if($go)
{
Write-Host $PSBoundParameters.text
}
else
{
Write-Host 'pas coucou'
}
}
}
[/code:1]
C'est mieux, je vais pouvoir avancer.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.073 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [résolut]fonction avec parametre dynamiques