2

我有一个初始化脚本,它设置了几个变量供以后使用。最后一行定义了一个“提示”函数,我希望它会改变我的提示,作为初始化已经完成的指示。变量已设置,因此它没有作为子进程运行,但我的提示顽固地停留在“PS”。怎么了?

这是脚本,我尝试过的函数有两个版本

$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 回答