如何在 powershell 中隐藏 "PS C:\>"?

How to hide "PS C:\>" in powershell?

所以你知道在 powershell 中,如果你在它前面输入一个命令,总是会有“PS(目录)>”。 我知道在 cmd 中使用一个简单的命令是可能的,但是你如何在 powershell 中做到这一点?

所以:

如果您知道修复方法,请告诉我。 如果我先找到它,我会自己回答。

(我后来发现了这个dup):Windows PowerShell: changing the command prompt

就像 Calculuswhiz 提到的那样,以下应该有效:

Function Prompt {" "}

只需在双引号内添加任何其他内容即可对其进行更改。

shows that it is the prompt function - described in the about_Prompts 概念性帮助主题 - 确定 PowerShell 在提示用户输入命令时在交互式会话中打印的字符串。

Calculuswhiz 所述,输出 empty 字符串 ('') 是 not not 的选项完全打印提示字符串,因为 PowerShell 然后默认为 PS>.

打印 单个 space 是解决此问题的一种方法,但 space 确实会打印。为了防止这种情况,Dabombber 在对 Abraham 的问题的评论中提出了解决方法,但是 截至 Windows 10 的最简单解决方案是:

function prompt { "`0" }  # Fully HIDES the prompt string.

"`0"输出一个NUL(空字符),有效隐藏提示字符串,无副作用,包括在Windows终端和ConEmu[ 1]

On Windows 7,NUL 将 打印为 space,在这种情况下,Dabombber 的替代方案会有所帮助:

# A space followed by a backspace char. in effect amounts to the empty string.
function prompt { " `b" }  

将此功能添加到您的 $PROFILE 文件以在所有未来会话中隐藏提示字符串。


[1] 在版本 v20.11.24.0 上验证。 Dabombber 提到 ConEmu prints NUL characters as a space,但是,鉴于 ConEmu 是基于 conhost.exe 的,就像常规控制台 windows 一样,它仅适用于 至 Windows 7.