Am besten prüfen, ob ein PowerShell-Objekt vorhanden ist?
Ich bin auf der Suche nach der beste Weg, um zu überprüfen, ob ein Com-Objekt vorhanden ist.
Hier ist der code, den ich habe; ich würde gerne verbessern Sie die Letzte Zeile:
$ie = New-Object -ComObject InternetExplorer.Application
$ie.Navigate("http://www.stackoverflow.com")
$ie.Visible = $true
$ie -ne $null #Are there better options?
InformationsquelleAutor der Frage LaPhi | 2010-12-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich würde stick mit der
$null
überprüfen, da alle anderen Wert als''
(leerer string)0
$false
und$null
bestehen der Prüfung:if ($ie) {...}
.InformationsquelleAutor der Antwort Keith Hill
Können Sie auch tun,
InformationsquelleAutor der Antwort ravikanth
In Ihrem Beispiel vielleicht Sie nicht haben ausführen alle Prüfungen an allen. Ist das möglich, dass
New-Object
null zurück? Ich habe nie gesehen, dass. Der Befehl fehlschlagen sollte im Falle eines Problems und der rest des Codes im Beispiel nicht ausgeführt werden. Also warum sollten wir das tun überprüft?Nur in den code wie unten müssen wir einige Prüfungen (explizite Vergleich mit $null ist das beste):
InformationsquelleAutor der Antwort Roman Kuzmin
Typ-check mit dem -operator false zurückgibt, für jeden null-Wert.
In den meisten Fällen, wenn nicht alle, $value [- System.Objekt] gilt auch für mögliche nicht-null-Wert. (In allen Fällen, wird es falsch sein, für jeden null-Wert.)
Mein Wert ist nichts, wenn nicht ein Objekt.
InformationsquelleAutor der Antwort Aron
Ich hatte das gleiche Problem. Diese Lösung funktioniert für mich.
https://msdn.microsoft.com/de-de/library/system.runtime.interopservices.marshal.getactiveobject(v=vs. 110).aspx
InformationsquelleAutor der Antwort McHalley
Was alle diese Antworten nicht markieren, ist, dass, wenn Sie vergleichen einen Wert "$null", setzen Sie den Wert " $null auf der linken Seite, sonst können Sie in Schwierigkeiten geraten, wenn der Vergleich mit einem collection-Typ-Wert. Siehe: https://github.com/nightroman/PowerShellTraps/blob/master/Basic/Comparison-operators-with-collections/looks-like-object-is-null.ps1
Den oben genannten block (leider) ausgeführt. Was noch interessanter ist, dass in der Powershell $Wert $null-und not $null:
So ist es wichtig, "$null " auf der linken Seite machen diese Vergleiche arbeiten mit Auflistungen:
Ich denke, dies zeigt erneut die macht der Powershell !
InformationsquelleAutor der Antwort Dag Wieers
Incase, du bist wie ich und du auch hier gelandet auf der Suche nach einem Weg, zu sagen, wenn Ihr PowerShell-variable, ist diese Besondere Geschmack des non-existent:
Dann hier ist etwas code, der bei mir funktioniert:
Beispiel:
zusammengemischt werden von anderen Menschen besser Antworten:
und einige andere Coole Dinge zu wissen:
InformationsquelleAutor der Antwort Gregor y