97 votes

Meilleur moyen de vérifier si un objet PowerShell existe?

Je cherche le meilleur moyen de vérifier si un objet Com existe.

 $ie = New-Object -ComObject InternetExplorer.Application
$ie.Navigate("http://www.stackoverflow.com")
$ie.Visible = $true

$ie -ne $null #Are there better options?
 

121voto

Keith Hill Points 73162

Je m'en tiens au contrôle $null puisque toute valeur autre que '' (chaîne vide), 0 , $false et $null passera le chèque: if ($ie) {...} .

76voto

ravikanth Points 9573

Vous pouvez aussi faire

 if ($ie) {
# Do Something
}
 

17voto

Roman Kuzmin Points 13913

Dans votre exemple particulier, vous n’avez peut-être pas à effectuer de vérification . Est-ce possible que New-Object renvoie null? Je n'ai jamais vu ça. La commande doit échouer en cas de problème et le reste du code de l'exemple ne sera pas exécuté. Alors, pourquoi devrions-nous faire cette vérification du tout?

Quelques contrôles seulement sont nécessaires dans le code ci-dessous (la comparaison explicite avec $ null est la meilleure):

 # we just try to get a new object
$ie = $null
try {
    $ie = New-Object -ComObject InternetExplorer.Application
}
catch {
    Write-Warning $_
}

# check and continuation
if ($ie -ne $null) {
    ...
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X