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

时间:2014-02-24 00:39:22

标签: windows function powershell command-prompt

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

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

但它只是在没有我想要的提示的情况下启动PowerShell。它确实在powershell本身中起作用。我可以让这个工作或者我必须制作一个单独的文件并通过“-file”来完成吗?

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

不确定UNIX提示符的默认值,但这应该按照我认为您希望它执行的操作。

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

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

  

SAVING THE PROMPT FUNCTION

     

与任何函数一样,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\Windows­PowerShell\v1.0\profile.ps1

祝你好运!