修改 Windows 命令行启动文本

修改 Windows 命令行启动文本

我想替换文本Powershell StartupCMD StartUp以下内容

# PowerShell
PS C:\Users\Admin>

# CMD
C:\Users\Admin>

PS >
CMD >

就像Python Start Up那样只显示>>>

这可能吗?

答案1

对于 PowerShell,$profile在文本编辑器中打开文件并定义一个Prompt函数。

Function Prompt {
    return "PS >"

    # color:
    # $esc = [char] 0x1B
    # return "$esc[34m" + "PS >" + "$esc[m"
}
Function Test-IsElevated {
    $me = [Security.Principal.WindowsIdentity]::GetCurrent()
    $me = [Security.Principal.WindowsPrincipal] $me
    return $me.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
}

Function Prompt {
    if (Test-IsElevated) { return "PS # " } else { return "PS > " }
}

PowerShell 使用 PSReadline,并且思考它不需要任何特殊的颜色代码,但我可能错了。

对于 Python,定义指向成为启动脚本的某个路径的 PYTHONSTARTUP 环境变量,然后sys.ps1 =在该文件中定义。

import sys

sys.ps1 = "PY >"
# color:
# sys.ps1 = "\x01\x1B[35m\x02" + "PY >" + "\x01\x1B[m\x02"

Python 使用与 Bash 相同的 Readline,但是\[ \]Readline 使用的是所包围的颜色代码,\x01 \x02而不是。

对于 Cmd,PROMPT使用实际的提示字符串定义环境变量(请参阅这里help prompt从 Cmd 内部获取语法)。

虽然 Cmd 可以有一个自动运行脚本,您不需要一个用于设置提示的脚本(使用setx或通过永久设置环境变量就足够了sysdm.cpl),所以以下只是一个示例。

set PROMPT=CMD $G

:: color - if it works
:: set PROMPT=$E[36mCMD $G$E[m

相关内容