Varsayılan bir Powershell diğer adını kalıcı olarak nasıl kaldırabilirim?


22

Bilinmeyen bir nedenden ötürü, devs, curl'un Invoke-WebRequestdoğru uygulamasıyla uyumlu olmasa da, "curl" için bir takma ad içeriyordu . Takma adı kullanarak kaldırabilirim Remove-Item alias:curl, ancak Powershell'i bir sonraki başlatışımda takma ad geri döndü. Her başlattığımda bir komut dosyasını çalıştırmak zorunda kalmadan kalıcı olarak kaldırmanın bir yolu var mı?


sadece FYI: Remove-Item alias:curlWindows sunucu 2019'da aynı komutu verdim ve yeniden başlattıktan sonra bile tekrar görünmüyor
matson kepson

Yanıtlar:


33

Zaten bir Powershell profiliniz varsa bu adımı atlayın:

New-Item $profile -force -itemtype file

Ardından profilinizi düzenleyin:

notepad $profile

Aşağıdaki satırı ekleyin:

remove-item alias:curl

Aşağıdaki komutla not defterini kaydedin, kapatın ve yeniden yükleyin veya profili uygulamak için Powershell'i kapatıp açın:

. $profile

1
Teşekkürler. Powershell geliştiricilerinin bunu düşünmediğini sinir bozucu söylemeliyim ki, bizi bu konuda bu şekilde çalışmak zorunda bırakıyoruz.
Nathan Ridley

Bunun 1: 1 yedek olması gerektiğini düşünmüyorum. Powershell, tanımlanmış bir parametre seti ve otomatik parametre bağlamanın (içine girdikten sonra gerçekten harika) kapsamlı bir kullanımına odaklanır. Kıvrılma takma adını sağlamak, * nix'e alışkın olan kişilere Powershell'de bir kıvrılma eşdeğeri olduğunu göstermektir.
megamorf

1
İlk adım her zaman atlanabilir. Az önce yaptım ve dosyayı oluşturmak isteyip istemediğimi soran bir pop-up aldım.
np8

FYI: Bazı takma adlar için "-Force" eklemeniz gerekecek
Dan Friedman

"Komik" şey, masmavi dokümanlar bile bir şeyi hızlı bir şekilde test etmek için kıvrılma komutları göstermesidir. Invoke-WebRequestSözdizimi değil, gerçek kıvırma komutları ...
Akos Lukacs

4

Sadece kullanmak curl.exeyerine yapışırdım curl. Bu yaklaşım, belirli profille çalışan PowerShell'e dayanmaz (ve PowerShell, -NoProfileanahtar kullanılarak hiç profil olmadan çalıştırılabilir ).


1
Teoride, powershell sonunda program dosyaları ".exe" uzantısı olmayan unix üzerinde çalışabilir iddia olabilir. Komut dosyalarında diğer adların etkin olması için kişilerin unixlenmesi kesinlikle mantıklı değildir . Kötü tasarım seçiminin pencerelerde açık kaynaklı GNU yazılım yığınını öldürmek için kasıtlı olup olmadığını merak etmeliyim. Ve neden en azından kabuğu gerçek bir program aramaya zorlamak için yerleşik bir "komut "umuz yok? Powershell gerçekten KISS ilkesinde başarısız oluyor.
Johan Boulé

1
@ JohanBoulé Komplo teorilerine gerek yok, sadece bir gözetimdi. PowerShell 6 zaten Linux'ta çalışıyor ve takma ad sorunları kısmen düzeltildi. Bu bağlantılara bakın initialsession: remove bukle ve wget takma adlar , kaldırın tüm yerleşik takma adları ve bir modül koyun , adından takma ad olduğu yerli ikili aramak için bir sözdizimi sağlayın
beatcracker

Bu PR'ların hiçbiri birleştirilmez. Sadece söylüyorum.
Dan Friedman

0

Remove-Item alias:curpowershell otomatik çalıştırma komut dosyasına ekle

XP, 2003 ve üzeri:

%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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.