是否可以从 PowerShell 中的函数覆盖 Prompt 函数?
Is it possible to overwrite the Prompt function from a function in PowerShell?
我正在尝试定义一个命令来在 PowerShell 控制台上设置自定义提示。
您可以使用以下脚本覆盖默认提示:
function Prompt {
"PS " + "[$(Get-Date)] " + $(Get-Location) + ">"
}
所以我想用一个函数调用上面的脚本,例如:Set-CustomPrompt
。
我已经在 Whosebug 上看到一个解决方案,其中脚本是从外部 ps1 文件执行的,但我正在寻找定义在同一文件中的解决方案。
仅仅在代码中定义提示功能不适合你?
(参见:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_prompts?view=powershell-5.1)
prompt
函数需要在全局范围内。但是它可以调用另一个函数。
所以用一个包含函数名称的全局变量来定义一个抽象级别:
function Set-CustomPrompt {
....
$myCustomPropmtFunctionName = ...
}
function prompt {
&$myCustomPropmtFunctionName;
}
让你的 Set-CustomPrompt
函数定义 global scope (see also 中的 Prompt
函数):
function Set-CustomPrompt {
function <b>global:</b>Prompt {
"PS [$(Get-Date)] $(Get-Location)>"
}
}
我正在尝试定义一个命令来在 PowerShell 控制台上设置自定义提示。 您可以使用以下脚本覆盖默认提示:
function Prompt {
"PS " + "[$(Get-Date)] " + $(Get-Location) + ">"
}
所以我想用一个函数调用上面的脚本,例如:Set-CustomPrompt
。
我已经在 Whosebug 上看到一个解决方案,其中脚本是从外部 ps1 文件执行的,但我正在寻找定义在同一文件中的解决方案。
仅仅在代码中定义提示功能不适合你? (参见:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_prompts?view=powershell-5.1)
prompt
函数需要在全局范围内。但是它可以调用另一个函数。
所以用一个包含函数名称的全局变量来定义一个抽象级别:
function Set-CustomPrompt {
....
$myCustomPropmtFunctionName = ...
}
function prompt {
&$myCustomPropmtFunctionName;
}
让你的 Set-CustomPrompt
函数定义 global scope (see also 中的 Prompt
函数):
function Set-CustomPrompt {
function <b>global:</b>Prompt {
"PS [$(Get-Date)] $(Get-Location)>"
}
}