Kann überprüft werden, ob in Powershell das Argument -Verbose angegeben wurde?

8

Ich habe meine eigene Powershell Logging-Funktion Log mit den Parametern stream (in welchem ​​Stream die Nachricht geschrieben wurde) und message (die zu schreibende Nachricht) geschrieben.

Die Idee ist, dass ich die Ausgaben sowohl in die Konsole als auch in eine Log-Datei schreiben kann. Was ich in der Funktion mache, ist im Grunde festzustellen, auf welchem ​​Stream die Nachricht veröffentlicht werden soll (mit einer switch-Anweisung) und dann schreibe ich die Nachricht in den Stream und die Log-Datei:

%Vor%

Die Frage ist nun, ob es möglich ist zu überprüfen, ob das Argument -Verbose gegeben wurde.

Das Ziel besteht darin, die Nachricht nur in die Protokolldatei zu schreiben, wenn die -Verbose angegeben wurde.

Ich habe schon in den folgenden Hilfedokumenten nachgeschaut, aber nichts hilfreiches gefunden:
- help about_Parameters
- help about_commonparameters

Der Parameter -WhatIf funktioniert auch nicht mit Write-Verbose.

Vielen Dank für Ihre Antworten!

    
dwettstein 27.06.2014, 07:51
quelle

3 Antworten

17

Überprüfen Sie in Ihrem Skript Folgendes:

%Vor%     
CB. 27.06.2014, 08:13
quelle
12

Ebenfalls verfügbar: Überprüfen Sie den Parameter '$ VerbosePreference'. Wenn es auf 'SilentlyContinue' gesetzt ist, wurde $ Verbose nicht in der Befehlszeile angegeben. Wenn es auf '$ Continue' gesetzt ist, können Sie davon ausgehen, dass es gesetzt wurde.

Gilt auch für die folgenden anderen allgemeinen Parameter:

%Vor%

Aus einer MSDN-Blog-Seite von vor langer Zeit ... , sollte es mit relativ alten Versionen von Powershell relevant sein. Siehe auch "Get-Help about_CommonParameters" in Powershell v4.

    
d3r3kk 25.08.2014 17:32
quelle
0

Allgemeiner: Da in der Befehlszeile -Verbose: $ false angegeben werden kann, behandelt der folgende Code diesen Fall. Es funktioniert auch für jeden anderen Schalterparameter:

%Vor%     
NoBrassRing 04.03.2018 14:06
quelle

Tags und Links