我正在编写一个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
}
Run Code Online (Sandbox Code Playgroud)
但是,Copy-Item
不在全局范围内复制.因此,prompt
抛出一个CommandNotFoundException
和断开功能不能代替prompt
用prompt_old
.
有没有办法可以从模块函数修改,然后恢复PowerShell提示符?
您可以在工作时将函数存储在变量中.
备份使用:
$global:prompt_old = get-content function:\prompt
Run Code Online (Sandbox Code Playgroud)
然后,您可以修改提示,稍后使用以下命令恢复:
set-content function:\prompt $global:prompt_old
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
332 次 |
最近记录: |