3

リモート サービスと対話するための PowerShell モジュールを作成しています。(モジュール内の関数を介して) リモート サービスに接続するときに、ユーザー名をプロンプトの先頭に追加したいと考えています。切断時にユーザー名を削除したい。

promptグローバル関数をコピーし、切断時に復元することでこれを達成できると思いました。

# Doesn't work
function Connect {
    Copy-Item function:prompt function:prompt_old
    function global:prompt { "[Username] $(prompt_old)" }
}
function Disconnect {
    Copy-Item function:prompt_old function:prompt -Force
}

ただし、Copy-Itemグローバル スコープではコピーを作成しません。したがって、promptがスローCommandNotFoundExceptionされ、切断関数は に置き換えることはできませpromptprompt_old

モジュール関数から PowerShell プロンプトを変更して復元する方法はありますか?

4

1 に答える 1

8

作業中は関数を変数に格納できます。

以下を使用したバックアップ:

$global:prompt_old = get-content function:\prompt

次に、プロンプトを変更し、後で次を使用して回復できます。

set-content function:\prompt $global:prompt_old
于 2013-03-05T21:53:58.270 に答える