Vee*_*era 54 windows-7 powershell
我在 Windows 7 上使用 PowerShell。如何配置 PowerShell 使其仅在 shell 提示中显示当前文件夹名称(而不是完整路径)?
例如,C:\folder\directory\name>
我想要name>
.
Syn*_*ech 87
您必须在 PowerShell 配置文件 ( %userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
) 中自定义提示功能;如果您以前从未修改过它,它可能是空白的,甚至不存在。
打开您的个人资料(例如,打开上述文件或在 PowerShell 中,Notepad $profile
)
将以下内容添加到您的个人资料中:
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Run Code Online (Sandbox Code Playgroud)保存配置文件
重启 PowerShell
可选。如果您收到一条消息,提示您不能运行脚本,则需要在 PowerShell 中复制/粘贴此行:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
Run Code Online (Sandbox Code Playgroud)
并重新启动。
Windows PowerShell 执行策略可让您确定 Windows PowerShell 加载配置文件和运行脚本的条件。
您可以为本地计算机、当前用户或特定会话设置执行策略。您还可以使用组策略设置为计算机和用户设置执行策略。
来源:微软文档
小智 12
更改提示以显示没有完整路径且末尾大于符号的当前文件夹:
一种方法可能是:
Function Prompt { "$( ( get-item $pwd ).Name )>" }
Run Code Online (Sandbox Code Playgroud)
或者:
Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }
Run Code Online (Sandbox Code Playgroud)
或者:
Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
Run Code Online (Sandbox Code Playgroud)
小智 10
作为附加说明,在我第一次创建 $profile 之前,我无法执行Synetech 的命令。
打开 PowerShell
键入$profile
并按回车键。这将显示 PowerShell 依赖的配置文件路径,即使它不存在(它不适合我)。我的路径与Synetech 发布的不同。
>$profile
C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Run Code Online (Sandbox Code Playgroud)
我必须创建WindowsPowerShell文件夹和Microsoft.PowerShell_profile.ps1文件。
添加Synetech 的代码并重新启动 PowerShell。
笔记:
如果您使用的是 posh-git(在使用 GitHub 桌面时安装),Synetech 的脚本将覆盖 posh-git 提示。此处为 posh-git 的其他提示脚本。
我发现这非常简单 - 结合Synetech 的答案和在以下位置找到的信息和PowerShell 配置文件。因为我是 PowerShell 的新手。我的步骤(针对 Visual Studio Code):
\ntest-path $profile
(在 PowerShell 命令提示符中 - 是否设置了配置文件?)
new-item -path $profile -itemtype file -force
(假设上述答案为假)
notepad $profile
(打开记事本)
粘贴到
\n function prompt {\n $p = Split-Path -leaf -path (Get-Location)\n "$p> "\n }\n
Run Code Online (Sandbox Code Playgroud)\n保存(您不必选择位置;它已经为您完成)
\n重新加载 Visual Studio Code - 您可能会收到一条有关运行脚本的消息(或者在重新加载之前执行下一步)
\nSet-ExecutionPolicy RemoteSigned -Scope CurrentUser
(在 PowerShell 提示符下,来自 Super\xc2\xa0User 答案)
重新加载 Visual Studio 代码
\n所以这主要是 Synetech 的答案,但有点容易上手 - 特别是第 2 步使这变得非常容易。
\n