LASTEXITCODE unter PowerShell nicht richtig verstanden

gruenspecht
Goto Top
Um den Bluetooth-Status eines meiner Geräte zu ermitteln, nutze ich BluetoothView v1.66 von NirSoft. http://www.nirsoft.net/utils/bluetooth_viewer.html

Das Tool bietet dazu folgenden Parameter an:


In einer Batch-Datei habe ich folgende Abfrage definiert:


Das funktioniert auch gut.

Nun wollte ich das aber mittels PowerShell machen. Nur so zur Übung, weil ich mich ein wenige in PowerShell einarbeiten wollte.

Meine Idee war den "Return-Status" in meinem PowerShell-Script über $LASTEXITCODE auszuwerten:


Leider ist $LASTEXITCODE immer leer, egal welchen Status mein Gerät hat.

Wenn ich anstelle von $LASTEXITCODE nur $? nutze, bekomme ich immer nur "TRUE" als Info, dass das Programm ausgeführt wurde.

Hat jemand eine Idee, wie ich den Return-Code von BluetoothView.exe in PowerShell abfragen und visualisieren kann? Im Netz habe ich leider keine Lösung gefunden und die gekauften PowerShell-Bücher sagen dazu auch nichts.

Content-Key: 536261

Url: https://administrator.de/contentid/536261

Ausgedruckt am: 25.06.2022 um 21:06 Uhr

Mitglied: ITvortex
ITvortex 17.01.2020 aktualisiert um 10:52:55 Uhr
Goto Top
Hey,

wenn du ein echo $argmuents machen würdest, dann würdest du feststellen, dass dein Output folgender ist:


das \n wird dein Tool wohl nicht interpretieren ;)

PS: Zur Ausgabe ist natürlich ein echo nicht notwendig, $arguments reicht. Wollte nur das du weißt was ich meine :) face-smile
Mitglied: 142232
Lösung 142232 17.01.2020 aktualisiert um 11:09:04 Uhr
Goto Top
Hat jemand eine Idee, wie ich den Return-Code von BluetoothView.exe in PowerShell abfragen und visualisieren kann?
Powershell basiert auf dem .NET Framework, lerne es zu nutzen ;-) face-wink
Mitglied: Gruenspecht
Gruenspecht 17.01.2020 aktualisiert um 11:25:29 Uhr
Goto Top
DANKE serial!! Ich sehe, ich muss noch SEHR VIEL lernen. Danke auch an Mitglied: ITvortex
Mitglied: 142232
142232 17.01.2020 aktualisiert um 11:52:55 Uhr
Goto Top
Generell kann man sagen das $LASTEXITCODE nicht "zuverlässig" dafür genutzt werden alle Rückgabewerte einer Anwendung auszuwerten, da da es nur bei legacy commands wie z.B. die integrierten DOS-Commands gesetzt wird die explizit den exit <num> Befehl nutzen, da es aber unterschiedliche Methoden gibt einen Rückgabewert aus einer Anwendungheraus zu setzen sollte man der automatischen Variable $LASTEXITCODE niemals blind vertrauen, nur wenn man den Support mit seiner Anwendung vorher überprüft hat.
Ich arbeite jetzt schon über ein Jahrzehnt mit der PS und habe die Variable nie wirklich genutzt, also am besten schnell wieder vergessen, das ist ein Relikt vergangener Tage ;-) face-wink.

So denn, schönes Wochenende.
Mitglied: Gruenspecht
Gruenspecht 17.01.2020 um 12:11:35 Uhr
Goto Top
OK! DANKE nochmals und auch Euch ein schönes Wochenende aus dem Bergischen Land.