Abrufen der Prozess-ID eines aufgerufenen PowerShell-Befehls

479
deostroll

Gibt es sowieso Verwendung ps, um die PID eines Powershell-Befehls zu erhalten, der bereits ausgeführt wird.

Angenommen, ich habe den folgenden Befehl bereits ausgeführt.

ls | ? { <where condition> } | % { <some operations> }

Das Ziel ist, ich öffne ein anderes Powershell-Fenster und tippe etwas ein, mit dem ich warten kann, bis das Obige abgeschlossen ist.

Irgendwelche Ideen?

0
Darauf kannst du nicht warten. Werfen Sie einen Blick auf PowerShell-Jobs, die möglicherweise hilfreich sind. Seth vor 7 Jahren 1

1 Antwort auf die Frage

1
Zoredache

Erlauben Sie mir zu warten, bis das Obige abgeschlossen ist.

In diesem Befehl verwenden Sie ein ForEach-Object ( %).

Das ForEach-Object hat ein Standardargument -Process, das den von Ihnen bereitgestellten Skriptblock akzeptiert, der die Verarbeitung für jedes Element in der Pipeline durchführt. Dieses Commandlet bietet jedoch auch ein -End Argument, das ausgeführt wird, nachdem alle Pipelineeingaben akzeptiert und verarbeitet wurden. Sie können diesen -EndBlock verwenden, um Ihre Benachrichtigung irgendwie zu senden. Vielleicht, indem Sie eine Datei schreiben oder eine E-Mail senden oder was auch immer Sie sonst benachrichtigen möchten.

ls | ? { <where condition> } | % { <some operations> } -End { #alert me!}