我正在尝试使用自定义提示打开PowerShell(例如UNIX shell提示符)。我试过了:
powershell -noexit -command "& {function prompt {"$(pwd)$ "}}"
但它只是在没有我想要的提示的情况下启动PowerShell。它确实在powershell本身中起作用。我可以让这个工作或者我必须制作一个单独的文件并通过“-file”来完成吗?
答案 0 :(得分:1)
在命令行上引用是很棘手的。另外,&在自己的范围内运行一个scriptblock,因此在那里定义的函数不会“泄漏”到调用范围。点运算符(也称为点源)是您正在寻找的。这就是我使用反斜杠引用字符串的工作原理。
powershell -noexit -command ". {function prompt {\"$(pwd)$ \"}}"
答案 1 :(得分:1)
不确定UNIX提示符的默认值,但这应该按照我认为您希望它执行的操作。
powershell -noexit -command "function prompt {'{0}$ ' -f $pwd}"
如果在提示函数中使用单引号,则$
不会被插值,并且您不必担心许多引号。
与任何函数一样,Prompt函数仅存在于当前函数中 会话。要为将来的会话保存提示功能,请将其添加到您的 Windows PowerShell配置文件。有关配置文件的更多信息, 见about_Profiles。
以下是创建新个人资料的方法:
if (!(test-path $profile))
{new-item -type file -path $profile -force}
notepad $profile
答案 2 :(得分:0)
将自定义提示添加到profile,每次启动PowerShell时都会加载/运行。
答案 3 :(得分:0)
Powershell定制总是有点棘手。尝试使用名为prompt()的方法添加脚本,如下所示:
function prompt() {
$myPrompt = "Ready>";
write-host -NoNewLine -ForegroundColor green $myPrompt
' '
}
然后在配置文件中调用它,例如所有用户的配置文件:
%windir%\system32\WindowsPowerShell\v1.0\profile.ps1