- forum
- PowerShell
- Entraide pour les initiés
- Pb pour réutiliser des valeurs dans d'autres clés du même hashtable
Résolu Pb pour réutiliser des valeurs dans d'autres clés du même hashtable
- ageofempiresz
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 44
- Remerciements reçus 1
il y a 1 an 10 mois #31636
par ageofempiresz
Réponse de ageofempiresz sur le sujet Pb pour réutiliser des valeurs dans d'autres clés du même hashtable
Mon réel besoin, je cherche un moyen de faire de la génération de fichiers par des templates, celui qui me parait bien est d'utiliser le module Poshstache dans Powershell Gallery. J'ai un hashtable qui regroupe des clés et des valeurs associés pour remplacer les variables positionnés dans les fichiers par des valeurs. Je précise que le hashtable devra faire des sous hashtable dans ce module poshtache permet de fouiner, j'ai fait quelques tests avec lui. Les entrées fournies (hostname, ip, netmask, gateway, fqdn, ou, domain, etc) sont dans un fichier plat et elles varient selon les plateformes que je dois gérer et à déployer. C'est un contexte en hors-ligne, donc pas d'accès à internet.
J'aimerais utiliser également cette hashtable dans des scripts ps1, pour optimiser et réduire le paquet de variables qui peuvent être supprimé ou en trop.
J'aimerais utiliser également cette hashtable dans des scripts ps1, pour optimiser et réduire le paquet de variables qui peuvent être supprimé ou en trop.
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 179
- Remerciements reçus 37
il y a 1 an 10 mois #31640
par ericlm128
Réponse de ericlm128 sur le sujet Pb pour réutiliser des valeurs dans d'autres clés du même hashtable
1)
2)
Malheureusement le module Poshstache ne semble pas gérer les "function" (fonctionnalité de la librairie Mustache dont ce sert le module)
Voir documentation officielle : mustache.github.io/mustache.5.html
Ceci aurait parfaitement répondu à ton besoin
Plus d'infos ici : www.codeproject.com/Articles/1000127/Mustache-Templates
3)
Le module ne prend pas aussi en charge les templates partiels
Plus d'infos ici : www.codeproject.com/Articles/1000127/Mustache-Templates
4)
Je te conseil de travailler comme ceci, qui me parait être la bonne logique
2 exemples de paramètres et 2 exemples de modèle
Ce code n'utilise pas de variable "intermédiaires"Malheureusement, je voulais alimenter un tableau de hashtable pour mettre des OU et autres valeurs dedans dans le but de l'utiliser dans un template, mais je devrais utiliser des variables intermédiaires pour le faire. Dommage
$tab = @{
name = "toto"
bob = "bricoleur"
}
$tab.test = $tab.name + " lol " + $tab.bob
2)
Malheureusement le module Poshstache ne semble pas gérer les "function" (fonctionnalité de la librairie Mustache dont ce sert le module)
Voir documentation officielle : mustache.github.io/mustache.5.html
Ceci aurait parfaitement répondu à ton besoin
Plus d'infos ici : www.codeproject.com/Articles/1000127/Mustache-Templates
3)
Le module ne prend pas aussi en charge les templates partiels
Plus d'infos ici : www.codeproject.com/Articles/1000127/Mustache-Templates
4)
Je te conseil de travailler comme ceci, qui me parait être la bonne logique
2 exemples de paramètres et 2 exemples de modèle
$param1 = @"
{
"personne": {
"nom": "DUPOND",
"prenom": "Patrick"
}
}
"@
$param2 = @{
personne = @{
nom = "DUPOND"
prenom = "Patrick"
}
}
$template1 = @"
{{#personne}}Mon nom est : {{nom}}
Mon prénom est : {{prenom}}
Mon nom complet est : {{nom}} {{prenom}}{{/personne}}
"@
$template2 = @"
Mon nom est : {{personne.nom}}
Mon prénom est : {{personne.prenom}}
Mon nom complet est : {{personne.nom}} {{personne.prenom}}
"@
ConvertTo-PoshstacheTemplate -InputString $template1 -ParametersObject $param1
ConvertTo-PoshstacheTemplate -InputString $template2 -ParametersObject $param1
ConvertTo-PoshstacheTemplate -InputString $template1 -ParametersObject $param2 -HashTable
ConvertTo-PoshstacheTemplate -InputString $template2 -ParametersObject $param2 -HashTable
Connexion ou Créer un compte pour participer à la conversation.
- ageofempiresz
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 44
- Remerciements reçus 1
il y a 1 an 10 mois - il y a 1 an 10 mois #31662
par ageofempiresz
Réponse de ageofempiresz sur le sujet Pb pour réutiliser des valeurs dans d'autres clés du même hashtable
Merci pour tes réponse.
1) Quand je disais des variables intermédiaires, je pensais à des variables simples qui sont déclaré avant et ensuite je déclare mon hashtable. ça fait pas très jolie, mais bon.
Je pensais ça
Code :
Résultat :
2) et 3) merci pour les liens je vais jeter un œil là-dessus. J'avais déjà regardé un peu la doc de mustache qui est plutôt bien faite.
4) le premier exemple j'avais déjà testé un exemple similaire. Le deuxième est intéressé cela évite de mettre une nouvelle {{#nom}}.
1) Quand je disais des variables intermédiaires, je pensais à des variables simples qui sont déclaré avant et ensuite je déclare mon hashtable. ça fait pas très jolie, mais bon.
Je pensais ça
Code :
$NETBIOS = "TOTO"
$EXTENSION = "FR"
$OU = "OU=machines,DC=$NETBIOS,DC=$EXTENSION"
$tab = @{
extension = $EXTENSION
netbios = $NETBIOS
OU = $OU
}
$tab
Résultat :
Name Value
-------- -------
extension FR
OU OU=machines,DC=TOTO,DC=FR
netbios TOTO
2) et 3) merci pour les liens je vais jeter un œil là-dessus. J'avais déjà regardé un peu la doc de mustache qui est plutôt bien faite.
4) le premier exemple j'avais déjà testé un exemple similaire. Le deuxième est intéressé cela évite de mettre une nouvelle {{#nom}}.
Dernière édition: il y a 1 an 10 mois par ageofempiresz.
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 179
- Remerciements reçus 37
il y a 1 an 10 mois - il y a 1 an 10 mois #31664
par ericlm128
Réponse de ericlm128 sur le sujet Pb pour réutiliser des valeurs dans d'autres clés du même hashtable
Je comprends bien l'exemple mais en pratique ton "TOTO", "FR" et "OU=machines,DC=$NETBIOS,DC=$EXTENSION" tu va allé les chercher dans des fichiers je suppose.
Tu va avoir besoin de code pour collecter ces données. Tu ne peux pas mettre tout ton code dans l'instanciation de l'objet, sinon ton script code va devenir difficilement lisible.
Si tes données ne sont pas collecté et son en dur dans le script tu peux faire comme tu le souhaitais. En ajoutant celle qui sont calculé automatiquement après.
Tu va avoir besoin de code pour collecter ces données. Tu ne peux pas mettre tout ton code dans l'instanciation de l'objet, sinon ton script code va devenir difficilement lisible.
Si tes données ne sont pas collecté et son en dur dans le script tu peux faire comme tu le souhaitais. En ajoutant celle qui sont calculé automatiquement après.
$tab = @{
extension = "FR"
netbios = "TOTO"
}
# Ajout de propriétés calculés
$tab.OU = "OU=machines,DC=$($tab.netbios),DC=$($tab.extension)"
$tab
Dernière édition: il y a 1 an 10 mois par ericlm128.
Connexion ou Créer un compte pour participer à la conversation.
- ericlm128
- Hors Ligne
- Membre elite
-
Réduire
Plus d'informations
- Messages : 179
- Remerciements reçus 37
il y a 1 an 10 mois #31665
par ericlm128
Réponse de ericlm128 sur le sujet Pb pour réutiliser des valeurs dans d'autres clés du même hashtable
Sinon tu fait comme ceci
$tab = @{}
$tab.extension = "FR"
$tab.netbios = "TOTO"
$tab.OU = "OU=machines,DC=$($tab.netbios),DC=$($tab.extension)"
Connexion ou Créer un compte pour participer à la conversation.
- ageofempiresz
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 44
- Remerciements reçus 1
il y a 1 an 10 mois #31669
par ageofempiresz
Réponse de ageofempiresz sur le sujet Pb pour réutiliser des valeurs dans d'autres clés du même hashtable
J'avais un exemple un peu différent. Je vais m'en inspiré. Merci pour l'idée.
Actuellement, il y a un mélange entre les variables simples et le fichier plat dans plein de scripts. Mes prédécesseurs avaient des notions basiques, mais pas structurer. C'est le travail que je suis en train de faire pour rendre plus lisible le code dans les scripts et gérer les cas d'erreurs.
Actuellement, il y a un mélange entre les variables simples et le fichier plat dans plein de scripts. Mes prédécesseurs avaient des notions basiques, mais pas structurer. C'est le travail que je suis en train de faire pour rendre plus lisible le code dans les scripts et gérer les cas d'erreurs.
Connexion ou Créer un compte pour participer à la conversation.
- forum
- PowerShell
- Entraide pour les initiés
- Pb pour réutiliser des valeurs dans d'autres clés du même hashtable
Temps de génération de la page : 0.073 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Pb pour réutiliser des valeurs dans d'autres clés du même hashtable