Як я назавжди видалити псевдонім Powershell за замовчуванням?


23

З незрозумілої причини розробники включили "curl" як псевдонім для Invoke-WebRequest, навіть якщо він не сумісний з належним виконанням curl, а це означає, що він стає на шляху, коли я намагаюся зробити запит на curl. Я можу видалити псевдонім за допомогою Remove-Item alias:curl, але наступного разу, коли запускаю Powershell, псевдонім повернувся. Чи є спосіб її видалити назавжди, не запускаючи сценарій кожного разу, коли я запускаю?


просто FYI: Я видав таку ж команду Remove-Item alias:curlвсередині Windows Server 2019, і вона не з’являється знову навіть після перезавантаження
Матсон Кепсон,

Відповіді:


33

Пропустіть цей крок, якщо у вас вже є профіль Powershell:

New-Item $profile -force -itemtype file

Потім відредагуйте свій профіль:

notepad $profile

Додайте до нього такий рядок:

remove-item alias:curl

Збережіть, закрийте блокнот і перезавантажте профіль за допомогою команди нижче або закрийте та відкрийте Powershell, щоб застосувати профіль:

. $profile

1
Спасибі. Треба сказати, що це прикро, що розробники повноважень не задумалися над цим, змусивши нас тепер вирішувати проблему таким чином.
Натан Рідлі

Я не думаю, що це означає бути заміною 1: 1. Powershell зосереджується на загальному використанні визначеного набору параметрів та автоматичному прив'язці параметрів (що дійсно чудово, як тільки ви потрапляєте в нього). Надання псевдоніму завитка - це показати людям, звикшим до * nix, що в Powershell є еквівалент завивки.
Мегаморф

1
Перший крок завжди можна пропустити. Я щойно зробив, і у мене з’явилося спливаюче вікно із запитанням, чи хочу я створити файл.
np8

FYI: Для деяких псевдонімів вам потрібно буде додати "-Force"
Ден Фрідман

Найсмішніша річ полягає в тому, що навіть блакитні документи показують команди curl, щоб швидко перевірити річ. Команди справжніх завитків, а не Invoke-WebRequestсинтаксис ...
Akos Lukacs

4

Я б дотримувався використання, curl.exeа не просто curl. Цей підхід не покладається на те, що PowerShell працює з певним профілем (а PowerShell взагалі може працювати без профілю за допомогою -NoProfileперемикача).


1
Я можу стверджувати, що теоретично, powerhell може врешті працювати на unix, де програмні файли не мають розширення ".exe". Немає сенсу уніфікувати людей, щоб у скриптах було включено псевдоніми . Мені потрібно замислитись, чи був цей вибір поганого дизайну навмисним намагатися вбити стек програмного забезпечення GNU на відкритому коді у Windows. І чому ми хоча б не вбудуємо "команду", щоб змусити оболонку шукати справжню програму? Powershell справді не вдається за принципом KISS.
Йохан Буле

1
@ JohanBoulé Не потрібно теорій змови, це був лише нагляд. PowerShell 6 вже працює на Linux, а проблеми псевдоніму частково виправлені. Дивіться ці посилання: initialsession: видалити локон і Wget псевдоніми , будь ласка , видаліть всі вбудовані псевдоніми і помістити їх в модулі , надає синтаксис для виклику рідних бінарних файлів , коли його ім'я псевдонімів
beatcracker

Жоден із цих піар не злитий. Просто кажу.
Ден Фрідман

0

додати Remove-Item alias:curдо автозапуску скрипта

вище 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.