powershell在命令提示符模式下有类似“echo off”的功能吗?

apeeds0o  于 2023-04-30  发布在  Shell
关注(0)|答案(3)|浏览(211)

在CMD命令提示符下,echo off命令禁止在“命令提示符窗口”中显示命令提示符。
即在提示中不再显示文件夹路径,给你一个干净的黑暗窗口。
我在下面放了一个gif来说明这一点:
echo off命令之后,提示符不再显示路径“C:\Users\TEMP〉”,直到我再次键入echo on
powershell有这样的功能吗?如果这很愚蠢,我很抱歉。我试图寻找它,但没有找到关于命令提示符窗口(不是脚本执行)的简单答案。

huus2vyu

huus2vyu1#

使用退格键控制字符。

function prompt { echo " `b" }

dgiusagp

dgiusagp2#

echo off的目的不是隐藏cmd中的提示符,而是禁用命令回显(特别是在批处理脚本中使用)。由于PS没有命令回显,因此无法禁用它。但是,当你只想改变你的提示:
您可以更改提示符,但不能更改为空字符串。如果返回空字符串,PS将使用其默认提示符:

function prompt {}

结果:

PS>echo hello
hello
PS>

你可以返回一个空格字符:

function prompt {' '}

结果:

echo hello
hello

但每一行都有一个空格前缀。您还可以使用7cc's answer中有趣的技巧,插入一个带有附加退格符的字符。但请注意,至少PowerShell 5。当使用短于两个字符的提示符时,1将 * 当前 * 崩溃。例如,当你输入{for时,它就会崩溃。如果提示符没有以空格字符结尾(例如,当键入{for时,提示符中的一个字符消失),它将是错误的。因此,最好使用>后跟一个空格字符作为最短的提示符:

function prompt {'> '}

当前内置提示符的定义如下:

function prompt {
    $(if (Test-Path variable:/PSDebugContext) { '[DBG]: ' }
      else { '' }) + 'PS ' + $(Get-Location) +
        $(if ($NestedPromptLevel -ge 1) { '>>' }) + '> '
}

Read more about prompts in PS

dbf7pr2w

dbf7pr2w3#

我使用以下代码:
@echo on:Set-PSDebug -Trace 1
@echo off:Set-PSDebug -Trace 0
simple:)

相关问题