Làm cách nào để xóa vĩnh viễn một bí danh Powershell mặc định?


22

Vì một số lý do không rõ, các nhà phát triển đã bao gồm "curl" như một bí danh Invoke-WebRequest, mặc dù nó không tương thích với việc thực hiện curl đúng cách, điều đó có nghĩa là nó gây cản trở khi tôi cố gắng thực hiện yêu cầu uốn. Tôi có thể xóa bí danh bằng cách sử dụng Remove-Item alias:curl, nhưng lần sau khi tôi khởi động Powershell, bí danh đã trở lại. Có cách nào để loại bỏ nó vĩnh viễn mà không phải chạy một kịch bản mỗi khi tôi bắt đầu không?


chỉ FYI: Tôi đã ban hành lệnh tương tự Remove-Item alias:curlbên trong máy chủ windows 2019 và nó không xuất hiện trở lại ngay cả sau khi khôi phục
Matson kepson

Câu trả lời:


33

Bỏ qua bước này nếu bạn đã có hồ sơ Powershell:

New-Item $profile -force -itemtype file

Sau đó chỉnh sửa hồ sơ của bạn:

notepad $profile

Thêm dòng sau vào nó:

remove-item alias:curl

Lưu, đóng notepad và tải lại hồ sơ bằng lệnh bên dưới hoặc đóng và mở Powershell để áp dụng cấu hình:

. $profile

1
Cảm ơn. Tôi phải nói rằng thật khó chịu khi các nhà phát triển quyền lực đã không nghĩ đến điều này, buộc chúng ta phải giải quyết vấn đề theo cách này.
Nathan Ridley

Tôi không nghĩ nó có nghĩa là thay thế 1: 1. Powershell tập trung vào việc sử dụng bao quát một tập hợp các tham số đã xác định và liên kết tham số tự động (điều này thực sự tuyệt vời khi bạn tham gia vào nó). Cung cấp bí danh curl là để cho mọi người quen với * nix rằng có một curl tương đương trong Powershell.
megamorf 17/03/2015

1
Bước đầu tiên luôn có thể được bỏ qua. Tôi vừa làm, và có một cửa sổ bật lên hỏi tôi có muốn tạo tệp không.
np8

FYI: Đối với một số bí danh, bạn sẽ cần phải thêm "-Force"
Dan Friedman

Điều "buồn cười" là ngay cả các tài liệu thiên thanh cũng hiển thị các lệnh curl để nhanh chóng kiểm tra mọi thứ. Các lệnh uốn cong thực sự, không phải Invoke-WebRequestcú pháp ...
Akos Lukacs

4

Tôi sẽ sử dụng curl.exethay vì chỉ curl. Cách tiếp cận này không phụ thuộc vào PowerShell đang chạy với cấu hình cụ thể (và PowerShell có thể được chạy mà không cần cấu hình nào cả bằng cách sử dụng -NoProfilechuyển đổi).


1
Tôi có thể lập luận rằng về lý thuyết, powershell cuối cùng có thể chạy trên unix, nơi các tệp chương trình không có phần mở rộng ".exe". Hoàn toàn vô nghĩa khi unix mọi người bật bí danh trong tập lệnh . Tôi phải tự hỏi liệu sự lựa chọn thiết kế xấu đó có phải là cố tình để giết chết ngăn xếp phần mềm GNU mã nguồn mở trên các cửa sổ hay không. Và tại sao ít nhất chúng ta không có một "lệnh" tích hợp để buộc shell tìm kiếm một chương trình thực sự? Powershell thực sự thất bại trên nguyên tắc KISS.
Johan Boulé

1
@ JohanBoulé Không cần cho các thuyết âm mưu, đó chỉ là một sự giám sát. PowerShell 6 đã chạy trên Linux và các vấn đề bí danh đã được khắc phục một phần. Xem các liên kết này: tên viết tắt: xóa curl và wget bí danh , Vui lòng xóa tất cả các bí danh tích hợp và đặt chúng vào một mô-đun , Cung cấp một cú pháp để gọi các nhị phân riêng khi tên của nó được đặt bí danh
beatcracker

Không ai trong số những PR đó được hợp nhất. Chỉ cần nói.
Dan Friedman

0

thêm vào Remove-Item alias:cur vào tập lệnh powershell autorun

trên XP, 2003:

%ALLUSERSPROFILE%\Documents\Msh\profile.msh
%ALLUSERSPROFILE%\Documents\Msh\Microsoft.Management.Automation.msh_profile.msh

XP, 2003:

%USERPROFILE%\My Documents\msh\profile.msh
%USERPROFILE%\My Documents\msh\Microsoft.Management.Automation.msh_profile.msh
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.