Jak trwale usunąć domyślny alias Powershell?

18

Z nieznanego powodu devs umieścił „curl” jako alias dla Invoke-WebRequest, nawet jeśli nie jest to zgodne z właściwą implementacją curl, co oznacza, że ​​przeszkadza mi, gdy próbuję wykonać żądanie curl. Mogę usunąć alias za pomocą Remove-Item alias:curl, ale następnym razem, gdy uruchomię Powershell, alias powrócił. Czy istnieje sposób na trwałe usunięcie go bez konieczności uruchamiania skryptu przy każdym uruchomieniu?

Nathan Ridley
źródło

Odpowiedzi:

28

Pomiń ten krok, jeśli masz już profil PowerShell:

New-Item $profile -force -itemtype file

Następnie edytuj swój profil:

notepad $profile

Dodaj do niego następującą linię:

remove-item alias:curl

Zapisz, zamknij notatnik i ponownie załaduj profil za pomocą poniższego polecenia lub zamknij i otwórz Powershell, aby zastosować profil:

. $profile
megamorf
źródło
1
Dzięki. Muszę powiedzieć, że denerwujące jest to, że programiści z PowerShell nie zastanowili się nad tym, zmuszając nas teraz do obejścia tego problemu.
Nathan Ridley
Nie sądzę, że ma to być wymiana 1: 1. Powershell skupia się na nadrzędnym zastosowaniu zdefiniowanego zestawu parametrów i automatycznym wiązaniu parametrów (co jest naprawdę świetne, gdy już do niego wejdziesz). Podanie aliasu curl polega na pokazaniu ludziom przyzwyczajonym do * nix, że istnieje odpowiednik curl w Powershell.
megamorf
1
Pierwszy krok można zawsze pominąć. Właśnie to zrobiłem i dostałem pop-up z pytaniem, czy chcę utworzyć plik.
np8
FYI: W przypadku niektórych aliasów musisz dołączyć „-Force”
Dan Friedman
„Zabawne” jest to, że nawet lazurowe dokumenty pokazują polecenia curl, aby szybko przetestować coś. Prawdziwe polecenia zwijania, a nie Invoke-WebRequest składnia...
Akos Lukacs
4

Trzymałbym się przy użyciu curl.exe zamiast po prostu curl. Podejście to nie opiera się na PowerShell działającym z określonym profilem (a PowerShell można uruchomić bez żadnego profilu) -NoProfile przełącznik).

beatcracker
źródło
1
Mogę argumentować, że teoretycznie PowerShell może ostatecznie działać na Uniksie, gdzie pliki programów nie mają rozszerzenia „.exe”. Absolutnie nie ma sensu unifikować ludzi, aby mieć włączone aliasy skrypty . Muszę się zastanowić, czy wybór złego projektu był celowy, aby spróbować zabić stos oprogramowania GNU w źródłach otwartych w systemie Windows. I dlaczego nie mamy przynajmniej wbudowanego polecenia, które zmusiłoby powłokę do szukania prawdziwego programu? Powershell naprawdę nie działa zgodnie z zasadą KISS.
Johan Boulé
@ JohanBoulé Nie potrzeba teorii spiskowych, to było tylko przeoczenie. PowerShell 6 działa już na Linuksie, a problemy z aliasami są częściowo naprawione. Zobacz te linki: initialsession: usuń aliasy curl i wget , Proszę usuń wszystko wbudowane aliasy i umieść je w module , Podaj składnię, aby wywołać rodzime pliki binarne, gdy jego nazwa jest aliasowana
beatcracker
Żaden z tych PR nie jest połączony. Tylko mówię.
Dan Friedman
0

Dodaj Remove-Item alias:cur do skryptu autorunu powershell

powyżej 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
źródło