Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2325 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Powershell] Variable objet en paramètre de fonction & ValidateSet

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Powershell] Variable objet en paramètre de fonction & ValidateSet

n°2404138
MilesTEG1
Posté le 18-12-2021 à 18:34:47  profilanswer
 

Bonsoir,
Je suis en train de me faire un script en powershell, et j'utilise un petit paquet de variable que j'ai besoin de passer en paramètre à une fonction.
 
Je cherche donc à simplifier ma gestion de variables (Powershell) que je passe en paramètre dans une fonction.
Actuellement j'ai ça :

 

$var_1_texte = "blabla"
var_1_position = "2"
var_1_jesaispasquoi = "truc"
$var_2_texte = "blabla2"
var_2_position = "22"
var_2_jesaispasquoi = "truc2"
$resultat = ma-fonction var_1_texte var_1_position var_1_jesaispasquoi  


 

J'aimerais pouvoir faire ceci :

 

$var_1.texte = "blabla"
var_1.position = "2"
var_1.jesaispasquoi = "truc"
$var_2.texte = "blabla2"
var_2.position = "22"
var_2.jesaispasquoi = "truc2"
$resultat = ma-fonction var_1 var_2


 
 
 
Mais je ne sais pas comment faire, ni comment ça 'appelle en programmation...
 
Est-ce possible en Powershell ?
 
Merci de votre aide :jap:

 
 
Edit : J'ai trouvé comment faire :

$var1 = New-Object -TypeName psobject
$var_obj | Add-Member -MemberType NoteProperty -Name truc1 -Value 2
$var_obj | Add-Member -MemberType NoteProperty -Name truc2 -Value 'JSP'
$var_obj | Add-Member -MemberType NoteProperty -Name truc3 -Value 'Du texte'


 
Mais maintenant je ne sais pas faire le ValidateSet pour $var_obj.truc1 comme je le faisais sur la variable $truc1 seule :
 

Code :
  1. function Get-Machin {
  2.         param (
  3.             [Parameter(Mandatory)]$var_obj,
  4.             [Parameter(Mandatory)][ValidateSet(1, 2)]$truc1,
  5.         )
  6. # Code de la fonction
  7. }
  8. # Appel de la fonction :
  9. Get-Machin $var_obj, $truc1


Dans mon exemple, $truc1 ne doit avoir comme valeur que 1 ou 2.
Il en va de même pour $var_obj.truc1, mais je ne sais pas comment faire pour la variable objet... car dedans tout ne doit pas être validé...
 
Des idées ?


Message édité par MilesTEG1 le 19-12-2021 à 10:15:58

---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
mood
Publicité
Posté le 18-12-2021 à 18:34:47  profilanswer
 

n°2404182
MilesTEG1
Posté le 19-12-2021 à 10:16:47  profilanswer
 

Message édité, j'ai trouvé comment faire une variable objet, mais maintenant j'ai un soucis pour faire un ValidateSet sur une propriété de cette variable objet.
J'ai mis la question dans le message d'origine.


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm
n°2404527
ericlm128
Posté le 23-12-2021 à 11:46:02  profilanswer
 

Peut être que je me trompe mais ton besoin est assez avancé, je pense qu'il serait mieux de passer par une classe
 

Code :
  1. class CTest {
  2.     [int][ValidateSet(1, 2)]$truc1
  3.     [string]$truc2
  4.     [string]$truc3
  5.     CTest(
  6.         [int]$truc1,
  7.         [string]$truc2,
  8.         [string]$truc3
  9.     ){
  10.         $this.truc1 = $truc1
  11.         $this.truc2 = $truc2
  12.         $this.truc3 = $truc3
  13.     }
  14. }
  15. $OTest = [CTest]::new(2, 'JSP', 'Du texte')

n°2405625
MilesTEG1
Posté le 04-01-2022 à 18:23:30  profilanswer
 

ericlm128 a écrit :

Peut être que je me trompe mais ton besoin est assez avancé, je pense qu'il serait mieux de passer par une classe
 

Code :
  1. class CTest {
  2.     [int][ValidateSet(1, 2)]$truc1
  3.     [string]$truc2
  4.     [string]$truc3
  5.     CTest(
  6.         [int]$truc1,
  7.         [string]$truc2,
  8.         [string]$truc3
  9.     ){
  10.         $this.truc1 = $truc1
  11.         $this.truc2 = $truc2
  12.         $this.truc3 = $truc3
  13.     }
  14. }
  15. $OTest = [CTest]::new(2, 'JSP', 'Du texte')



 
 
Ha oué c'est probablement encore mieux ^^
Et je peux mettre des validateSet :)
 
Bon faut que je bosse un peu la structure du coup :)
 
Merci :jap:


---------------
Mes ventes : [FeedBack] http://forum.hardware.fr/hfr/Achat [...] 4599_1.htm

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Powershell] Variable objet en paramètre de fonction & ValidateSet

 

Sujets relatifs
[Powershell] sauvegarde client / serveur[Powershell] Condition Vide ou null
[powerShell] emails des utilisateurs d'un groupPOWERSHELL - get-physicaldisk mediatype Unspecified
[Powershell] Script pour clonage groupes Office 365[powershell] Comparer version installation distance
[Powershell]Ajouter une valeur dans un tableau dans requête reccursive[powershell] appcmd ouvre une autre fenêtre
[powershell] copie/màj de répertoiresAppel PowerShell dans une macro
Plus de sujets relatifs à : [Powershell] Variable objet en paramètre de fonction & ValidateSet


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR