2

後で使用するためにいくつかの変数を設定する初期化スクリプトがあります。最後の行は、初期化が完了したことを示すものとして、プロンプトを変更することを望んでいた「prompt」関数を定義しています。変数が設定されるため、サブプロセスとして実行されていませんが、プロンプトは頑固に「PS」のままです。何がうまくいかないのですか?

これがスクリプトです。私が試した関数の2つのバージョンがあります

$II_SYSTEM = "F:\Apps\Ingres92"
$env:PATH = "$II_SYSTEM\ingres\bin;$II_SYSTEM\ingres\utility;$env:PATH"
$env:LIB = "$II_SYSTEM\ingres\lib;$env:LIB"
$INCLUDE = "$II_SYSTEM\ingres\files;$INCLUDE"

function prompt{"PS $PWD IX>"}
function prompt{write-output ("PS $PWD IX>") -nonewline}

ありがとう。

4

1 に答える 1

6

dot-source を使用してスクリプト ファイルを呼び出す必要があります。

. .\myscript.ps1

これにより、スクリプト レベルで作成された変数と関数をグローバル スコープで使用できるようになります。または、スクリプトを次のように変更します。

function global:prompt{"PS $PWD IX>"}
function global:prompt{write-output ("PS $PWD IX>") -nonewline}

そして普通に呼び出します。

于 2013-05-20T14:00:08.377 に答える