我有一个初始化脚本,它设置了几个变量供以后使用。最后一行定义了一个“提示”功能,我希望它会改变我的提示,作为初始化已经完成的指示。变量设置,所以它不是作为子进程运行,但我的提示顽固地保持在“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}
感谢。
答案 0 :(得分:5)
您需要使用dot-source调用脚本文件:
. .\myscript.ps1
这使得在脚本级别创建的变量和函数可用于全局范围。 或者像这样更改脚本:
function global:prompt{"PS $PWD IX>"}
function global:prompt{write-output ("PS $PWD IX>") -nonewline}
并正常调用。