2017-08-31 1 views
1

Ich versuche, einen einzelnen Befehl zu definieren, um eine benutzerdefinierte Eingabeaufforderung auf der PowerShell-Konsole festzulegen. Sie können die Standardeingabeaufforderung mit dem folgenden Skript überschreiben:Kann die Eingabeaufforderungsfunktion von einer Funktion in PowerShell überschrieben werden?

function Prompt { 
    "PS " + "[$(Get-Date)] " + $(Get-Location) + ">" 
} 

So würde Ich mag obige Skript mit einer Funktion aufzurufen, z.B .: Set-CustomPrompt.

Ich habe bereits eine Lösung auf StackOverflow gesehen, wo das Skript von einer externen ps1-Datei ausgeführt wurde, aber ich suche nach einer Lösung, wo die Definition in der gleichen Datei ist.

Antwort

2

Haben Sie Ihre Set-CustomPrompt Funktion die Prompt Funktion im global scope (see also) definieren:

function Set-CustomPrompt { 
    function global:Prompt { 
     "PS [$(Get-Date)] $(Get-Location)>" 
    } 
}
0

Die prompt-Funktion muss ein globaler Bereich sein. Aber es kann eine andere Funktion aufrufen.

So mit einer Abstraktionsebene mit einer globalen Variablen definieren Halten der Funktionsname:

function Set-CustomPrompt { 
    .... 
    $myCustomPropmtFunctionName = ... 
} 

function prompt { 
    &$myCustomPropmtFunctionName; 
} 
Verwandte Themen