【问题标题】:Is it possible to overwrite the Prompt function from a function in PowerShell?是否可以从 PowerShell 中的函数覆盖 Prompt 函数?
【发布时间】:2017-08-31 10:45:46
【问题描述】:

我正在尝试定义一个命令来在 PowerShell 控制台上设置自定义提示。 您可以使用以下脚本覆盖默认提示:

function Prompt {
    "PS " + "[$(Get-Date)] " + $(Get-Location) + ">"
}

所以我想用函数调用上面的脚本,例如:Set-CustomPrompt

我已经在 StackOverflow 上看到了从外部 ps1 文件执行脚本的解决方案,但我正在寻找定义在同一个文件中的解决方案。

【问题讨论】:

    标签: powershell prompt


    【解决方案1】:

    让您的Set-CustomPrompt 函数在global scope (see also) 中定义Prompt 函数:

    function Set-CustomPrompt {
        function global:Prompt {
            "PS [$(Get-Date)] $(Get-Location)>"
        }
    }

    【讨论】:

      【解决方案2】:

      prompt 函数必须是全局范围。但它可以调用另一个函数。

      所以用一个包含函数名的全局变量来定义一个抽象级别:

      function Set-CustomPrompt {
         ....
         $myCustomPropmtFunctionName = ...
      }
      
      function prompt {
          &$myCustomPropmtFunctionName;
      }
      

      【讨论】:

        【解决方案3】:

        【讨论】:

          猜你喜欢
          • 2011-04-06
          • 1970-01-01
          • 2020-01-28
          • 1970-01-01
          • 1970-01-01
          • 2011-09-22
          • 1970-01-01
          • 1970-01-01
          • 2022-11-04
          相关资源
          最近更新 更多