2016-07-25 5 views
1

angezeigt. Ist es möglich, dass PowerShell die Hilfemeldungen standardmäßig anzeigt, wenn Parameter nicht in der Befehlszeile angegeben sind, ohne dass der Benutzer "!?" Eingeben muss? für Hilfe?PowerShell HelpMessage wird standardmäßig in den Parametern

Sollte ich nicht param verwenden und es manuell mit Read-Host tun, wenn ich möchte, dass mein Skript interaktiv ist?

param ( 
    [Parameter(Mandatory=$true,HelpMessage="Enter desired password.")][string]$desired_password, 
    [Parameter(Mandatory=$true,HelpMessage="Please input target hostnames.")][string[]]$target_hosts 
) 

Was wäre der beste Ansatz in einem solchen Fall?

Antwort

1

Wenn Sie möchten, dass immer ein Hilfetext angezeigt wird, wenn Sie keinen [String] Parameter angeben, dann müssen Sie dies selbst schreiben. Beispiel:

+0

Vielen Dank für Ihre Antwort, so dass, wenn ich das richtig verstehen, gibt es keine Möglichkeit, die Standardmeldung Recht außer Kraft zu setzen? – trox

+0

Wenn Sie möchten, dass ein Hilfstext immer angezeigt wird, wenn Sie keinen Parameter angeben, können Sie Code schreiben, um dies selbst zu erreichen, wie in meinem Beispiel gezeigt. –

0

Leider ist es derzeit nicht möglich, eine freundliche Eingabeaufforderung für einen fehlenden Parameter ohne Read-Host einzugeben. in einer eleganteren Weise durchgeführt wird als in Bills Antwort Aber das könnte:

param(
    [String] $TestParameter=$(Read-Host -prompt "Enter the test parameter") 
)