Fehlende Ausgabe im 1. Durchlauf

mrcount
Goto Top
Servus zusammen,

ich habe folgendes (Teil-)Script (Powershell):


Beim ersten Durchlauf erhalte ich bei Zeile 52
eine leere Ausgabe (rote Markierung im Screenshot), dafür aber beim zweiten Durchlauf das Ergebnis des ersten und des aktuellen Durchlaufs (gelbe Markierung im Screenshot).
Danach läuft alles, wie es soll...
Auch ein doppeltes Ausführen der Zeile 52 oder ein Start-Sleep hat nichts gebracht.

Kann mir jemand sagen, woran das liegen kann?

Hier mal die Ein-/Ausgabe als Screenshot:
ps-out

Content-Key: 2841380763

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

Ausgedruckt am: 28.06.2022 um 05:06 Uhr

Mitglied: MrCount
Lösung MrCount 19.05.2022 um 16:25:57 Uhr
Goto Top
Ich habe eine (oder DIE) Lösung gefunden:

Ergänze ich Zeile 52 mit

also zu

klappt es auch im ersten Durchgang.
Mitglied: colinardo
colinardo 19.05.2022 aktualisiert um 16:47:36 Uhr
Goto Top
Ja, bei manchen CMDLets muss man manchmal sagen wie sie etwas ausgeben soll, sonst bleibt das manchmal im Puffer hängen :-) face-smile.
$input -as [int]
Achtung für die Zukunft: Special Variable Names
$INPUT Represents an enumerator that enumerates all input that is passed to a function.

Grüße Uwe
Mitglied: TK1987
TK1987 19.05.2022 aktualisiert um 16:46:25 Uhr
Goto Top
Moin,

Zitat von @MrCount:
ist doppelt gemoppelt. Powershell ist per default case insensitive. Daher: "y" ist das gleiche wie "Y".

Möchte man explizit Groß- und Kleinschreibung berücksichtigt haben, so muss man -ceq statt -eq verwenden.

Darüber hinaus sind Befehle wie format-table und out-string eigentlich nur für die Ausgabe gedacht. Du solltest dir besser angewöhnen, die Powershell-Objekte zu verarbeiten, statt diese in Zeichenketten umzuwandeln.

Gruß Thomas
Mitglied: MrCount
MrCount 19.05.2022 um 16:51:37 Uhr
Goto Top
Danke für die Hinweise!!
Mitglied: colinardo
Lösung colinardo 19.05.2022 aktualisiert um 17:30:48 Uhr
Goto Top
Solche Menüs kann man sich in der Regel ersparen und die Auswahl mit Out-GridView und -Passthru abfackeln: