Jak uruchomić PowerShell z Eksploratora Windows?

Czy istnieje sposób, aby uruchomić PowerShell w określonym folderze z Eksploratora Windows, np. aby kliknąć prawym przyciskiem myszy w folderze i mieć opcję "Otwórz PowerShell w tym folderze"?

To naprawdę denerwujące, że muszę zmieniać katalogi w folderze mojego projektu przy pierwszym uruchomieniu MSBuild każdego dnia.

Author: Peter Mortensen, 2008-10-08

17 answers

W Eksploratorze Windows przejdź do paska adresu u góry (skróty klawiaturowe: Alt+D lub Ctrl+l) i wpisz powershell LUB powershell_ise i naciśnij Enter. Okno poleceń PowerShell zostanie otwarte z bieżącym katalogiem.

 469
Author: Ashwin Nanjappa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-28 23:21:34

Aby dodać w odwrotnej kolejności jako sztuczkę, w podpowiedzi PowerShell możesz zrobić:

ii .

Lub

start .

Aby otworzyć okno Eksploratora Windows w bieżącym katalogu.

 99
Author: EBGreen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-28 23:23:56

Jeśli korzystasz z systemu Windows 8 lub nowszego, możesz po prostu użyć wbudowanego pliku → "Otwórz Windows PowerShell".

Lub Alt + F, po którym następuje R .

 62
Author: Vivek Maharajh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-28 23:25:54

Http://www.hanselman.com/blog/IntroducingPowerShellPromptHere.aspx

Scott Hanselman ma naprawdę prosty inf, który zrobi to za Ciebie. Jeśli chcesz dostosować skrypt, naprawdę łatwo jest przejść i edytować inf w celu dostosowania.

 55
Author: Chris Sutton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-08 17:40:38

Jako alternatywa dla powyższej odpowiedzi, która wymaga wpisania polecenia PowerShell (powershell.exe ) za każdym razem możesz utworzyć pozycję menu kontekstowego, tak jak w menu kontekstowym" Otwórz okno poleceń tutaj".

Istnieją trzy klucze rejestru, gdzie te polecenia idą. Każdy klawisz kontroluje menu kontekstowe innego obiektu Eksploratora Windows. Pierwszy to ten, o który pytałeś:

  • HKCR \ Directory\Background\shell - jest to menu kontekstowe dla samego okna Eksploratora(to znaczy menu kontekstowe, które jest wyświetlane, gdy żaden element nie jest zaznaczony, na przykład po kliknięciu prawym przyciskiem myszy w pustym obszarze okna).
  • HKCR \ Directory \ shell - jest to menu kontekstowe folderów w Eksploratorze Windows.
  • HKCR \ Drive \ shell - jest to menu kontekstowe ikon dysku w głównym Eksploratorze Windows.

Dla każdego z tych kluczy rejestru, możesz dodać podklucz, który doda Polecenie" Otwórz okno PowerShell tutaj" do menu kontekstowego, tak jak masz menu kontekstowe "Otwórz okno poleceń tutaj".

Tutaj jest kopia mojego Openpowershell.plik reg , który umieszcza polecenie w menu kontekstowym każdego z obiektów Eksploratora, tle okna, folderze i ikonie dysku:
Windows Registry Editor Version 5.00

;
; Add context menu entry to Windows Explorer background
;
[HKEY_CLASSES_ROOT\Directory\Background\shell\powershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\powershell\command]
@="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

;
; Add context menu entry to Windows Explorer folders
;
[HKEY_CLASSES_ROOT\Directory\shell\powershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\powershell\command]
@="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

;
; Add context menu entry to Windows Explorer drive icons
;
[HKEY_CLASSES_ROOT\Drive\shell\powershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Drive\shell\powershell\command]
@="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

Tak więc, w ulubionym edytorze tekstu, otwórz nowy plik o nazwie Openpowershell here.reg. Copy the dokładne tekst powyższego kodu, wklej do nowego pliku i zapisz go. (Dodałbym kopię pliku, ale nie mogłem dowiedzieć się, czy załączniki są możliwe.) Jeśli chcesz wykluczyć polecenie z jednego z wpisów, po prostu skomentuj odpowiednią sekcję średnikami. Moje komentarze pokazują każdą sekcję.

Po zapisaniu pliku uruchom go, klikając na niego dwukrotnie. Kiedy zapyta, powiedz mu, żeby kontynuował. Jak tylko go uruchomisz, pojawią się wpisy menu kontekstowego!

Oto Mój Odkrywca menu kontekstowe okna. Podświetlałem polecenia konsoli i PowerShell. Jak widzisz, możesz również dodać pozycję menu kontekstowego, aby uruchomić podwyższone okno poleceń, np. Uruchom jako Administrator .

Wpis PowerShell w menu kontekstowym Eksploratora

Uwaga : pozycje menu kontekstowego są wyświetlane Alfabetycznie na podstawie ich kluczy rejestru. Nazwa klucza dla wyniesionej powłoki poleceń to " runas ", dlatego pojawia się po wpisie PowerShell.

 40
Author: geo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-04 19:53:47

Możesz pobrać plik inf stąd - Wprowadzenie zachęty PowerShell tutaj

 32
Author: Gulzar Nazim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-10-08 17:40:40

W systemie Windows 10 zarówno wiersz polecenia, jak i wiersz powershell można znaleźć za pośrednictwem paska menu, zarówno dla osób niebędących administratorami, jak i administratorów. Te opcje będą miały swój folder ustawiony na aktualnie wybrany folder z Eksploratora.

Przynajmniej w wersji Szwedzkiej powershell jest otwierany za pomocą Alt F + i . Dla administratora powershell jest to Alt F + S + P .

Menu Windows Powershell

Jeśli to nie są prawidłowe znaki, możesz nacisnąć i przytrzymać klawisz Alt , aby zobaczyć prawidłowe znaki. dla każdego kroku pojawi się znak nakładający element menu.

 11
Author: Default,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-12-13 11:05:27

Chciałem, aby to menu kontekstowe działało tylko wtedy, gdy klikamy prawym przyciskiem myszyi trzymamy 'SHIFT', czyli jak działa wbudowane menu kontekstowe 'Otwórz okno poleceń tutaj'.

Jednak żadne z dostarczonych rozwiązań tego nie zrobiło, więc musiałem zwinąć własny plik .reg - skopiować poniższy plik, zapisać go jako power-shell-here-on-shift.reg i kliknąć dwukrotnie.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\powershell]
@="Open PowerShell here"
"NoWorkingDirectory"=""
"Extended"=""

[HKEY_CLASSES_ROOT\Directory\shell\powershell\command]
@="C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%L'"

otwórz power shell przytrzymując shift i naciskając prawym przyciskiem myszy

 5
Author: Daniel Sokolowski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-11-21 21:37:07

To jeszcze łatwiejsze w Windows 8.1 i Server 2012 R2.

Zrób to raz: Kliknij prawym przyciskiem myszy na pasku zadań, wybierz Właściwości. Na karcie Nawigacja włącz [✓] Zastąp Wiersz polecenia Windows PowerShell w menu, gdy kliknę prawym przyciskiem myszy lewy dolny róg lub nacisnę klawisz Windows + X .

Następnie, gdy chcesz monit PowerShell, Naciśnij Win + X, I . (Or Win + X, w tym celu należy skontaktować się z Działem Obsługi Klienta.]}

 4
Author: Warren Rumak,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-12-27 18:26:11

W tym celu należy użyć programu PowerShell PowerToy... Dodaje pozycję menu kontekstowego dla Otwórz PowerShell tutaj .

LUB możesz utworzyć skrót, który otworzy PowerShell z folderem Start In jako folderem projektów.

 4
Author: Steven Murawski,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-28 23:22:13

Istnieje rozszerzenie Eksploratora Windows wykonane przez kolesia, który tworzy narzędzia dla SVN, które będą przynajmniej otwierać okno wiersza polecenia.

Jeszcze nie próbowałem, więc Nie wiem, czy da radę PowerShell, ale chciałem podzielić się miłością z moimi braćmi Stack Overflow:

Http://tools.tortoisesvn.net/StExBar

 3
Author: Josh Kodroff,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-28 23:24:36

Inną opcją są doskonałe Elevation PowerToys Michaela Murgolo na TechNet w http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx .

Zawierają one Wiersz polecenia PowerShell tutaj i wiersz polecenia PowerShell tutaj jako Administrator.

 2
Author: Mark Larson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-07-10 16:35:34

Poniżej znajduje się zwięzłe (i zaktualizowane) podsumowanie wcześniejszych rozwiązań. Oto co zrobić:

Dodaj te łańcuchy i ich odpowiednie klucze nadrzędne:

pwrshell\(Default) < Open PowerShell Here
pwrshell\command\(Default) < powershell -NoExit -Command Set-Location -LiteralPath '%V'
pwrshelladmin\(Default) < Open PowerShell (Admin)
pwrshelladmin\command\(Default) < powershell -Command Start-Process -verb runAs -ArgumentList '-NoExit','cd','%V' powershell

W tych miejscach

HKCR\Directory\shell (for folders)
HKCR\Directory\Background\shell (Explorer window)
HKCR\Drive\shell (for root drives)
To wszystko. Dodaj" Rozszerzone "ciągi poleceń, aby były widoczne tylko po przytrzymaniu klawisza "Shift", Wszystko inne jest zbędne.
 2
Author: ppw0,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-10 20:59:39

Dodając klucze rejestru poniżej, w systemie Windows 10 udało mi się uzyskać opcję Otwórz PowerShell tutaj w moim menu kontekstowym SHIFT + RClick. Po prostu skopiuj je do pustego pliku Notatnika, a następnie zapisz jako plik .reg i uruchom plik, aby dodać klucz. Niektóre z tych innych odpowiedzi mówią, aby dodać klucz do HKCR \ Directory \ shell ale okazało się, że dla mnie działa tylko z kluczami wchodzącymi do HKLM \ SOFTWARE \ Classes \ Directory\shell

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\powershell]
"Extended"=""
"NoWorkingDirectory"=""
@="Open PowerShell here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\background\shell\powershell\command]
@="C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\powershell]
@="Open PowerShell here"
"Extended"=""
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
"NoWorkingDirectory"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\powershell\command]
@="C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'"
 1
Author: Rhys,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-18 10:21:40
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
if(-not (Test-Path -Path "HKCR:\Directory\shell\$KeyName"))
{
    Try
    {
        New-Item -itemType String "HKCR:\Directory\shell\$KeyName" -value "Open PowerShell in this Folder" -ErrorAction Stop
        New-Item -itemType String "HKCR:\Directory\shell\$KeyName\command" -value "$env:SystemRoot\system32\WindowsPowerShell\v1.0\powershell.exe -noexit -command Set-Location '%V'" -ErrorAction Stop
        Write-Host "Successfully!"
     }
     Catch
     {
         Write-Error $_.Exception.Message
     }
}
else
{
    Write-Warning "The specified key name already exists. Type another name and try again."
}

Możesz pobrać skrypt detail z Jak uruchomić PowerShell z Eksploratora Windows

 1
Author: frank tan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-11-08 03:14:33

Dość prostą alternatywą jest wywołanie PowerShell za pomocą skrótu. Istnieje właściwość skrótu o nazwie "Start in", która mówi, jakiego katalogu(folderu) użyć, gdy skrót jest wywoływany.

Jeśli pole Start In jest puste, oznacza to użycie bieżącego katalogu.

Kiedy po raz pierwszy tworzysz skrót do PowerShell w zwykły sposób, pole start in określa katalog domowy. Jeśli wyczyścisz pole start in, masz teraz skrót do powershell, który otwiera PS w aktualny katalog, cokolwiek to jest.

Jeśli skopiujesz ten skrót do katalogu docelowego i użyjesz Eksploratora, aby go wywołać, uruchomisz PS, który jest skierowany na katalog docelowy.

Jest już zaakceptowana odpowiedź na to pytanie, ale oferuję to jako inny sposób.

 1
Author: Walter Mitty,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-29 02:04:18

Dla użytkowników autohotkey, oto fragment, którego używam

Otwiera okno PowerShell po naciśnięciu Ctrl-Alt-T. (Testowane z Win10)

Jeśli "aktywne okno" jest oknem Eksploratora Windows, To PowerShell zostanie otwarty w bieżącym folderze. W przeciwnym razie wystarczy otworzyć PowerShell w domyślnym folderze .

Użycie: 1) Zainstaluj AutoHotkey i skopiuj wklej to do myscript.ahk 2) Zastąp <DefaultPath> wybraną ścieżką. 3) Uruchom skrypt.

; Ctrl-Alt-T opens PowerShell in the current folder, if using Windows Explorer. Otherwise, just open the Powershell.
^!T::
if WinActive("ahk_class CabinetWClass") and WinActive("ahk_exe explorer.exe")
{
    KeyWait Control
    KeyWait Alt
    Send {Ctrl down}l{Ctrl up}
    Send powershell{Enter}
}
else
{
    psScript =
    (
    cd 'C:\<DefaultPath>'
    ls
    )
    Run "%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe" -NoExit -Command &{%psScript%}
}
return
 1
Author: np8,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-27 08:30:15