Jak uruchomić plik z wiersza polecenia systemu Windows bez uwzględnienia rozszerzenia pliku

0

Jeśli mam skrypt programu PowerShell o nazwie myscript.ps1i znajduje się on w ścieżce PATH, chciałbym móc nacisnąć Windows+ r, wpisać „myscript” i nacisnąć enter. Obecnie wymaga ode mnie pisania myscript.ps1i działa dobrze.

Znalazłem kilka odpowiedzi, które sugerowane ftype, assocoraz PATHEXTzmienną środowiskową, ale to dotyczy tylko skrypty uruchamiane z wiersza poleceń lub PowerShell, a nie z wiersza Run explorer.exe jest.

Zakładam, że istnieje pewne ustawienie rejestru, ale nie wiem, czego szukać, ponieważ fileextma setki wpisów. Szukałem również, .batponieważ pliki wsadowe działają automatycznie, ale nie znalazłem nic oczywistego.

Myślałem, że znalazłem go poniżej HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\KindMap, dodając wartość .ps1 i ustawiając na program.bat, .cmd, .com i .exe - wszystkie są ustawione w ten sposób, ale nie ma kości (nawet po ponownym uruchomieniu komputera).

Zauważyłem również, że każdy z .bat, .cmd, .exe, .lnk i .msi miał HKCR\<app-handler-id>\shellex\PropertySheetHandlers\ShimLayer Property Pagezestaw {513D916F-2A8E-4F51-AEAB-0CBC76FB1AF8}, ale dodanie tego też HKCR\Microsoft.Powershell.1nie było warte.

dx_over_dt
źródło
Możesz napisać skrypt, który zawiera listę wszystkich twoich osobistych skryptów i pozwala wybrać jeden do uruchomienia?
Xen2050
Rozważyłem to i mogę to zrobić, ale nadal chcę uzyskać odpowiedź na moje pytanie. Jestem ciekawy, jak działa system Windows.
dx_over_dt
Wydaje mi się, że potrzebujesz pełnego imienia i nazwiska. Jeśli byłeś w terminalu, możesz spróbować nacisnąć TAB, aby automatycznie uzupełnić wiele rzeczy (programy, pliki, katalogi ...)
Xen2050
Niektóre rozszerzenia plików nie są jednak wymagane: .bat, .exe, .cmd itp. Zakładam, że nie są one zakodowane na stałe w systemie operacyjnym, więc powinien istnieć sposób na ich zmianę i dodanie .ps1.
dx_over_dt
1
@EricW. Tak, po prostu ogólnie nie lubię obejść tego problemu. Ponadto wymaga pliku wsadowego dla każdego skryptu, chyba że chcesz użyć skryptu ps1 jako argumentu dla skryptu wsadowego; w takim przypadku kończy się to zapisaniem w sumie 2 znaków, zakładając, że nazwa pliku wsadowego to tylko 1. Okazuje się, że .lnk (pliki skrótów) również nie wymagają rozszerzenia, więc myślę, że pójdę tą drogą mój jedyny skrypt.
dx_over_dt