Résolu
Probleme avec une fonction
- witkowski
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 4 ans 2 mois - il y a 4 ans 2 mois #29924
par witkowski
et j'obtiens ceci :
[Resolu]Probleme avec une fonction a été créé par witkowski
$ListeProgrammes = Get-WmiObject -Class Win32_Product | Select-Object -Property Name
$ListeProgrammesD = gp HKLM:\Software\Microsoft\Windows\CurrentVersion\Uninstall\* |Select DisplayName, DisplayVersion, Publisher, InstallDate, HelpLink, UninstallString
# lorsque j'utilise write-host, les deux variables ont du contenu.
# Mais quand je crées une fonction, les variables ne sont pas passées
function test_existence_logiciel($ListeProgrammes,$ListeProgrammesD,$nom)
{
write-host $nom
# cette fonction sert à vérifier l'existence d'un logiciel, et à récupérer son numéro de version
if ($ListeProgrammes -match $nom) {
write-host $nom
write-host "est installé"
} elseif ($ListeProgrammesD -match $nom) {
write-host $nom
write-host "est installé"
} else {
write-host $nom " est absent"
}
}
# j' appelles la fonction pour l'executer
$nom = "CCleaner"
write-host $nom
test_existence_logiciel($ListeProgrammes,$ListeProgrammesD,$nom)
$nom = "filezilla"
write-host $nom
test_existence_logiciel($ListeProgrammes,$ListeProgrammesD,$nom)
$nom = "toto"
write-host $nom
test_existence_logiciel($ListeProgrammes,$ListeProgrammesD,$nom)
qu'est ce qui bloque le passage des variables à ma fonction?D:\Documents\Poweshell\scripts\installation_logiciels.ps1
CCleaner
est installé
filezilla
est installé
toto
est installé
Dernière édition: il y a 4 ans 2 mois par witkowski.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 4 ans 2 mois #29926
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Probleme avec une fonction
Salut,
en powershell on n'utilise pas les parenthèses lors d'un appel de fonction, sinon la fonction reçoit un tableau d'objet.Dans ton cas elle reçoit un tableau de tableau.
en powershell on n'utilise pas les parenthèses lors d'un appel de fonction, sinon la fonction reçoit un tableau d'objet.
function test_existence_logiciel {param ($a,$b) "`$a=$a"; "`$b=$b"}
$a=10;$b=9
test_existence_logiciel $a $b
#$a=10
#$b=9
test_existence_logiciel ($a,$b)
#$a=10 9
#$b=
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- witkowski
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 8
- Remerciements reçus 0
il y a 4 ans 2 mois - il y a 4 ans 2 mois #29927
par witkowski
Réponse de witkowski sur le sujet Probleme avec une fonction
Merci pour la réponse... ca va bien me servir.
Pour la déclaration des paramètres, c'est la première ligne après l'accolade, comme ci dessous:
Et pour l'appel de la fonction, c'est comme ceci, sans parenthèse ni virgule:
Et si aucun paramètre ne suis l'appel à la fonction, ceux ci sont automatiquement demandés à l'utilisateur.
Pour la déclaration des paramètres, c'est la première ligne après l'accolade, comme ci dessous:
function test_existence_logiciel
{
param ([object] $ListeProgrammes , [object] $ListeProgrammesD, [string] $nom)
write-host $nom
Et pour l'appel de la fonction, c'est comme ceci, sans parenthèse ni virgule:
test_existence_logiciel $ListeProgrammes $ListeProgrammesD $nom
Et si aucun paramètre ne suis l'appel à la fonction, ceux ci sont automatiquement demandés à l'utilisateur.
Dernière édition: il y a 4 ans 2 mois par witkowski.
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.107 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Probleme avec une fonction