gpt4 book ai didi

powershell - 卸载模块时恢复 PowerShell 别名

转载 作者:行者123 更新时间:2023-12-04 15:11:05 30 4
gpt4 key购买 nike

卸载模块后如何恢复 PowerShell 别名。

尽管执行 Set-Alias,但我到目前为止的代码不起作用命令本身就可以。它将定义存储在一个局部变量中,当 OnRemove 时可用。事件被触发。

$orig_cd = (Get-Alias -Name 'cd').Definition
$MyInvocation.MyCommand.ScriptBlock.Module.OnRemove = {
Set-Alias -Name 'cd' -Value $orig_cd -Force -Option AllScope -Scope Global
}

我还应该提到我正在覆盖现有的 cd 命令别名,就像这样
Set-Alias -Name cd -Value cdX -Force -Option AllScope -Scope Global

这是模块 https://github.com/vincpa/z/blob/master/z.psm1的源代码

更新

添加 Write-Host OnRemove 处理程序中的命令显示 $orig_cd 的值确实是 Set-Location .

最佳答案

我试过这个,它的工作原理:

$orig_cd = (Get-Alias -Name 'cd').Definition
$MyInvocation.MyCommand.ScriptBlock.Module.OnRemove = {
set-item alias:cd -value $orig_cd
}

Set-item alias:cd -Value 'cdX'

另外,一个建议 - 你正在编写一个人们将在他们的终端中使用的模块。我不希望有人想要删除您的模块的用例。这些步骤对于您正在编写的模块来说可能是多余的。

关于powershell - 卸载模块时恢复 PowerShell 别名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24475572/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com