使用自定义提示符从命令提示符启动PowerShell



我正在尝试使用自定义提示(例如UNIX shell提示符)打开PowerShell。我试过:

powershell -noexit -command "& {function prompt {"$(pwd)$ "}}"

但它只是在没有我想要的提示的情况下启动 powershell。它实际上确实在Powershell本身中工作。我可以让它工作还是我必须创建一个单独的文件并通过"-file"来完成?

不确定 UNIX 提示符默认是什么,但这应该做我认为你想要它做的事情。

powershell -noexit -command "function prompt {'{0}$ ' -f $pwd}"

如果在提示函数中使用单引号,则$不会值,并且您不必担心许多引号。

保存提示功能

与任何函数一样,提示函数仅存在于当前 会期。要保存提示功能以供将来的会话使用,请将其添加到您的 Windows PowerShell 配置文件。有关配置文件的详细信息, 请参阅about_Profiles。

以下是创建新配置文件的方法:

if (!(test-path $profile)) 
       {new-item -type file -path $profile -force}
notepad $profile

在命令行上引用很棘手。 此外,在自己的范围内运行脚本块,因此在那里定义的函数不会"泄漏"到调用范围。 点运算符(也称为点源)是您正在寻找的。 这就是我使用反斜杠引用字符串的工作。

powershell -noexit -command ". {function prompt {"$(pwd)$ "}}"

将自定义提示添加到配置文件,每次启动 PowerShell 时都会加载/运行该提示。

Powershell定制总是有点棘手。尝试使用名为 prompt() 的方法添加脚本,如下所示:

function prompt() {
$myPrompt = "Ready>";
write-host -NoNewLine -ForegroundColor green $myPrompt
' '
}

然后在配置文件中调用 this,例如针对所有用户的配置文件:

%windir%system32Windows­PowerShellv1.0profile.ps1

祝你好运!

最新更新