Résolu Probleme avec une fonction

Plus d'informations
il y a 1 semaine 5 jours - il y a 1 semaine 3 jours #29924 par lefabdu51
$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)
et j'obtiens ceci :

D:\Documents\Poweshell\scripts\installation_logiciels.ps1
CCleaner

est installé
filezilla


est installé
toto


est installé

qu'est ce qui bloque le passage des variables à ma fonction?
Dernière édition: il y a 1 semaine 3 jours par lefabdu51.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 3 jours #29926 par Laurent Dardenne
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.
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=
Dans ton cas elle reçoit un tableau de tableau.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 1 semaine 3 jours - il y a 1 semaine 3 jours #29927 par lefabdu51
Réponse de lefabdu51 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:
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 1 semaine 3 jours par lefabdu51.

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.569 secondes
Propulsé par Kunena