我正在编写一个用于与远程服务交互的 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
并且断开功能不能代替prompt
与 prompt_old
.有没有办法可以从模块函数修改然后恢复 PowerShell 提示符?
最佳答案
您可以在工作时将函数存储在变量中。
备份使用:
$global:prompt_old = get-content function:\prompt
然后您可以修改提示,稍后使用以下命令恢复:
set-content function:\prompt $global:prompt_old
关于powershell - 从模块修改和恢复 PowerShell 提示符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15231712/