Beenden Sie eine PowerShell-Funktion, aber setzen Sie das Skript fort [duplizieren]

9

Das mag wie eine sehr sehr dumme Frage erscheinen, aber ich kann es nicht wirklich herausfinden. Ich versuche, die Funktion zu stoppen, wenn sie ihren ersten Treffer (Übereinstimmung) findet und dann mit dem Rest des Skripts fortfährt.

Code:

%Vor%

Gewünschtes Ergebnis:

%Vor%

Ich habe versucht, break , exit , continue und return zu verwenden, aber keine davon bringt mir das gewünschte Ergebnis. Danke für Ihre Hilfe.

    
DarkLite1 26.04.2016, 07:50
quelle

2 Antworten

7

Wie bereits erwähnt, ist Foreach-object eine eigene Funktion. Verwenden Sie regelmäßig foreach

%Vor%     
Andrey Marchuk 26.04.2016, 08:07
quelle
1

Der Skriptblock, den Sie an ForEach-Object übergeben, ist eine eigenständige Funktion. Ein return in diesem Skriptblock kehrt nur von der aktuellen Iteration des Skriptblocks zurück.

Sie benötigen ein Flag, um zukünftigen Iterationen mitzuteilen, dass sie sofort zurückkehren sollen. Etwas wie:

%Vor%

Statt dessen sollten Sie besser ein Where-Object verwenden, um die Pipeline-Objekte nur auf diejenigen Objekte zu filtern, die Sie verarbeiten müssen.

    
Richard 26.04.2016 08:01
quelle

Tags und Links