在Microsoft的CMD.EXE控制台窗口的批处理语言中,在长时间显示目录路径后,我从不喜欢让我的命令从最右边开始。所以在我的控制面板→系统→高级系统设置→环境变量中,我保存了以下作业,其中$_
就像一个软回车:
PROMPT=[$P\]$_$+$G$S
显示的提示是两行,如下所示:
[C:\Temp\] >
($+
跟踪pushd
和popd
,比chdir
命令更加漂亮。$S
是空格。顺便说一句,{{1} }批处理中的换行符/续行字符,就像PowerShell中的反引号^
一样。)
现在我想在PowerShell中使用相同的两行提示符。有好消息和坏消息。
好消息是我可以通过在`
提示符下键入我的打开的PowerShell窗口来实现这一点:
>
(通过SHIFTENTER我的意思是按 Shift + 输入,我认为这可能被称为"软回复"?)
.......坏消息,问题......
我想将上述 function prompt {'[' + $(get-location) + '\] SHIFTENTER > '
行放入我的个人资料PowerShell脚本,即function prompt ...
(在路径Microsoft.PowerShell_profile.ps1
)。但是如何?
Notepad.exe不支持 Shift + Enter 。
MS Word理解 Shift + 输入,但是当我保存为.txt,然后用Notepad ++检查时,我看到一个普通的CR-LF(意思是\ r \ nn ,0x0d 0x0a)。
Notepad ++菜单编辑→字符面板使我能够在我的.txt / .ps1文件中插入特殊的ASCII字符,例如0x0b,称为VT(对于"垂直制表符")。但是,尽管在网站上有一些声明,当我在我的$Profile
个人资料.ps1文件中使用它时,VT的行为并不像Soft Return(我还运行配置文件.ps1脚本来重新测试)。
我想要的提示是否可以通过配置文件.ps1脚本建立?
答案 0 :(得分:0)
您的批处理提示符的PowerShell等价物是:
function prompt { "[$(Get-Location)\]`r`n$("+"*(Get-Location -Stack).Count)>" }
#`r`n is just a shorter way of writing [System.Environment]::NewLine
将其添加到个人资料中以满足您的需求:
<强> AllUsersAllHosts:强>
C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \ profile.ps1
<强> AllUsersPowerShell:强>
C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \ Microsoft.PowerShell_profile.ps1
<强> AllUsersISE:强>
C:\ Windows \ System32下\ WindowsPowerShell \ V1.0 \ Microsoft.PowerShellISE_profile.ps1
<强> CurrentUserAllHosts:强>
C:\ Users \用户名\文件\ WindowsPowerShell \ profile.ps1
<强> CurrentUserPowerShell:强>
C:\ Users \用户名\文件\ WindowsPowerShell \ Microsoft.PowerShell_profile.ps1
<强> CurrentUserISE:强>
C:\ Users \用户名\文件\ WindowsPowerShell \ Microsoft.PowerShellISE_profile.ps1