我正在尝试使用自定义提示(例如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%system32WindowsPowerShellv1.0profile.ps1
祝你好运!