Câu trả lời:
Bạn phải tùy chỉnh chức năng nhắc trong hồ sơ PowerShell ( %userprofile%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
); nó có thể trống hoặc thậm chí không tồn tại nếu bạn chưa bao giờ sửa đổi nó trước đây.
Mở hồ sơ của bạn (ví dụ: mở tệp đã nói ở trên hoặc trong PowerShell, Notepad $profile
)
Thêm phần sau vào hồ sơ của bạn:
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Lưu hồ sơ
Khởi động lại PowerShell
Tùy chọn . Nếu bạn nhận được thông báo nói rằng bạn không được phép chạy tập lệnh, thì bạn cần sao chép / dán dòng này trong PowerShell:
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
và khởi động lại.
Chính sách thực thi Windows PowerShell cho phép bạn xác định các điều kiện theo đó Windows PowerShell tải các tệp cấu hình và chạy các tập lệnh.
Bạn có thể đặt chính sách thực thi cho máy tính cục bộ, cho người dùng hiện tại hoặc cho một phiên cụ thể. Bạn cũng có thể sử dụng cài đặt Chính sách nhóm để đặt chính sách thực thi cho máy tính và người dùng.
Nguồn: Tài liệu Microsoft
GetCurrentDirectory
. Hãy nhớ rằng PowerShell không phải lúc nào cũng có nghĩa là hệ thống tệp. Sử dụng snap-in registry, tôi có thể sử dụng cd hkcu:
và bây giờ lời nhắc sẽ hoàn toàn tắt.
$PWD
thay vì gọi Get-Location
. Ví dụ:function prompt { (Split-Path -Leaf $pwd) + '> ' }
prompt
trong tập tin hồ sơ của bạn. Nó chỉ phải nằm trong phạm vi phiên toàn cầu. Mặc định có vẻ tương đương với function prompt {"PS " + (Get-Location) + ">"}
, trong khi function prompt {""}
cho giống như function prompt {"PS>"}
. Sử dụng function prompt {" `b"}
để nhận được một dấu nhắc trống (ít nhất là trực quan ...).
Như một lưu ý bổ sung, tôi không thể thực hiện lệnh của @ Synetech cho đến khi lần đầu tiên tôi tạo hồ sơ $.
Nhập $profile
và nhấn enter. Điều này sẽ hiển thị đường dẫn hồ sơ PowerShell dựa vào, ngay cả khi nó không tồn tại (nó không dành cho tôi). Con đường của tôi khác với những gì @Synetech đã đăng ở trên.
>$profile
C:\Users\[username]\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
Tôi đã phải tạo cả thư mục WindowsPowerShell và tệp Microsoft.PowerShell_profile.ps1.
Chú thích:
Nếu bạn đang sử dụng posh-git (được cài đặt khi sử dụng máy tính để bàn GitHub), tập lệnh của @ Synetech sẽ ghi đè lời nhắc posh-git. Kịch bản nhắc bổ sung cho posh-git ở đây .
%userprofile%
mở rộng đếnC:\Users\[username]
$Env:userprofile
tương đương vớiecho %userprofile%
Thay đổi lời nhắc để hiển thị thư mục hiện tại không có đường dẫn đầy đủ và lớn hơn ký hiệu ở cuối:
Một cách có thể là:
Function Prompt { "$( ( get-item $pwd ).Name )>" }
Hoặc là:
Function Prompt { "$( Split-Path -leaf -path (Get-Location) )>" }
Hoặc là:
Function Prompt { "$( ( Get-Location | Get-Item ).Name )>" }
\\myserver\my\path
.
Tôi thấy việc này khá dễ dàng - kết hợp câu trả lời của @ Synetech và thông tin tìm thấy trong hồ sơ PowerShell . Bởi vì tôi là người mới chơi PS. Các bước của tôi (đối với vscode):
dán vào
function prompt {
$p = Split-Path -leaf -path (Get-Location)
"$p> "
}
Set-ExecutPolicy RemoteSign -Scope CurrentUser (tại dấu nhắc PS của bạn, từ câu trả lời SuperUse)
tải lại vscode
Vì vậy, chủ yếu là câu trả lời của @ Synetech (được nâng cấp) với một chút để bắt đầu dễ dàng - đặc biệt là bước 2 làm cho việc này trở nên rất dễ dàng.
Dòng duy nhất dưới đây hoạt động tốt với tôi
(Nhận vị trí | Nhận vật phẩm) .Tên
[System.IO.Directory]::GetCurrentDirectory()
không đại diện cho vị trí hiện tại của powershell, mà là thư mục làm việc của quá trình, không phải lúc nào cũng giống nhau. Thay thế bằngGet-Location