Как навсегда удалить псевдоним Powershell по умолчанию?

22

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

Натан Ридли
источник
только к вашему сведению: я Remove-Item alias:curl
выполнил ту

Ответы:

33

Пропустите этот шаг, если у вас уже есть профиль Powershell:

New-Item $profile -force -itemtype file

Затем отредактируйте свой профиль:

notepad $profile

Добавьте следующую строку к нему:

remove-item alias:curl

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

. $profile
megamorf
источник
1
Благодарю. Должен сказать, что досадно, что разработчики PowerShell не продумали это до конца, заставляя нас теперь обходить эту проблему таким образом.
Натан Ридли
Я не думаю, что это замена 1: 1. Powershell фокусируется на всеобъемлющем использовании определенного набора параметров и автоматической привязке параметров (что действительно здорово, когда вы в него попали). Предоставление псевдонима curl означает, что люди, привыкшие к * nix, знают, что в Powershell есть эквивалент curl.
Мегаморф
1
Первый шаг всегда можно пропустить. Я только что сделал, и получил всплывающее окно с вопросом, хочу ли я создать файл.
np8
К вашему сведению: для некоторых псевдонимов вам нужно будет добавить «-Force»
Дэн Фридман,
Самое смешное, что даже лазурные документы показывают команды скручивания для быстрого тестирования. Реальные команды curl, а не Invoke-WebRequestсинтаксис ...
Akos Lukacs
4

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

beatcracker
источник
1
Я могу утверждать, что теоретически PowerShell может в конечном итоге работать на Unix, где программные файлы не имеют расширения «.exe». Абсолютно бессмысленно объединять людей в псевдонимы в сценариях . Я должен задаться вопросом, был ли этот неудачный выбор преднамеренным, чтобы попытаться уничтожить стек программного обеспечения GNU с открытым исходным кодом на Windows. И почему у нас по крайней мере нет встроенной «команды», чтобы заставить оболочку искать настоящую программу? Powershell действительно терпит неудачу по принципу KISS.
Йохан Буле
1
@ JohanBoulé Нет необходимости в теории заговора, это был просто недосмотр. PowerShell 6 уже работает в Linux, и проблемы с псевдонимами частично исправлены. Смотрите эти ссылки: initialsession: удалить локон и Wget псевдонимы , пожалуйста , удалите все встроенные псевдонимы и поместить их в модуле , предоставляет синтаксис для вызова родных бинарных файлов , когда его имя псевдонимов
beatcracker
Ни один из этих PR не объединен. Просто говорю.
Дэн Фридман
0

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

выше 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
STTR
источник