Answers:
您必须在PowerShell配置文件(%userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
)中自定义提示功能;如果您以前从未修改过它,则它可能为空,甚至不存在。
打开您的个人资料(例如,打开上述文件或在PowerShell中,Notepad $profile
)
将以下内容添加到您的个人资料:
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
保存个人资料
重新启动PowerShell
可选的。如果收到提示您不允许运行脚本的消息,则需要在PowerShell中复制/粘贴以下行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
然后重新启动。
Windows PowerShell执行策略使您可以确定Windows PowerShell加载配置文件和运行脚本的条件。
您可以为本地计算机,当前用户或特定会话设置执行策略。您还可以使用组策略设置来设置计算机和用户的执行策略。
资料来源:Microsoft文档
GetCurrentDirectory
。请记住,PowerShell并不总是意味着文件系统。使用注册表管理单元,我可以使用它cd hkcu:
,现在提示将完全消失。
$PWD
代替Get-Location
。例如function prompt { (Split-Path -Leaf $pwd) + '> ' }
prompt
在配置文件中进行定义。它只必须在全局会话范围内。默认值似乎与相同function prompt {"PS " + (Get-Location) + ">"}
,而function prompt {""}
与相同function prompt {"PS>"}
。使用function prompt {" `b"}
得到一个空的提示(至少在视觉上......)。
另外要注意的是,直到我第一次创建$ profile之前,我才能执行@Synetech的命令。
键入$profile
并按Enter键。这将显示PowerShell依赖的配置文件路径,即使该路径不存在(对我而言也不是)。我的路径与@Synetech上面发布的不同。
>$profile
C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
我必须同时创建WindowsPowerShell文件夹和Microsoft.PowerShell_profile.ps1文件。
注意:
如果您使用的是posh-git(在使用GitHub桌面时安装),@ Synetech的脚本将覆盖posh-git提示符。这里是posh-git的其他提示脚本。
%userprofile%
扩展至C:\Users\[username]
$Env:userprofile
等效于echo %userprofile%
更改提示以显示当前文件夹,但不包含完整路径,并且结尾处带有大于符号:
一种方法是:
Function Prompt { "$( ( get-item $pwd ).Name )>" }
要么:
Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }
要么:
Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
\\myserver\my\path
。
我发现这很容易-将@Synetech的答案和PowerShell配置文件中的信息结合起来。因为我是PS的新手。我的步骤(针对vscode):
粘贴
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser(在PS提示符下,来自SuperUse答案)
重新加载vscode
因此,大多数@Synetech的答案(已被推荐)都带有一些容易上手的开始-尤其是步骤2使此操作非常容易。
[System.IO.Directory]::GetCurrentDirectory()
不代表Powershell的当前位置,而是代表进程工作目录,它们并不总是相同的。替换为Get-Location