Jak zmienić domyślne zachowanie CLI Powershell, aby ignorować rozszerzenia plików dla typów plików, które działają na moim $Env:Path
Zmienna środowiskowa?
Jeśli tylko napiszę python
, działa poprawnie i upuszcza mnie do interpretera Pythona tak, jak tego oczekuję, ponieważ rozszerzenie jest częścią zmiennej środowiskowej.
Problem polega na tym, że piszę pyth
i uzupełniony tabulatorami w PowerShell, zawsze dołącza .exe
. Chcę tylko, żeby dokończył pierwszą część polecenia bez rozszerzenia.
czy to możliwe? Może scenariusz?
windows
command-line
powershell
jmreicha
źródło
źródło
cmd
również uzupełnia się o rozszerzenia plików. Tak właśnie działają rzeczy.Odpowiedzi:
Możesz zastąpić standardową funkcję wypełniania zakładki własną. W najnowszej wersji PowerShell ta funkcja jest
TabExpansion2
. Ta modyfikacja wygląda tak, jak chcesz:Dodałem wiersze po tym, który zaczyna się od
$field
; przechodzi przez domyślne opcje uzupełniania kart i blokuje rozszerzenie poza tymi, które wydają się być z twojegoPATH
. Dostałem oryginalne źródło za pomocą tego polecenia:Jeśli umieścisz nową funkcję w a
.ps1
plik i wykonaj kropkę tego skryptu (np.. .\tabnoext.ps1
), stanie się programem obsługi kart dla bieżącej sesji. Aby załadować go za każdym razem, gdy otworzysz okno PowerShell, po prostu wklej cały ten kod do Skrypt profilu PowerShell .Jeśli używasz starej wersji PowerShell, musisz zastąpić
TabExpansion
funkcja, która po prostu zwraca tablicę ciągów.źródło
global
to znaczyFunction global:TabExpansion2 {