Come posso avviare PowerShell da Esplora risorse?


259

Esiste un modo per avviare PowerShell in una cartella specifica da Esplora risorse, ad esempio fare clic con il pulsante destro del mouse in una cartella e disporre di un'opzione come "Apri PowerShell in questa cartella"?

È davvero fastidioso dover cambiare directory nella cartella del mio progetto la prima volta che eseguo MSBuild ogni giorno.


16
[Alt] [F + S + A] per avviare l'amministratore PowerShell nella cartella corrente. Almeno per Windows 10.
Rosdi Kasim,

Risposte:


526

In Esplora risorse, vai alla barra degli indirizzi in alto (scorciatoie da tastiera: Alt+ Do Ctrl+ L) e digita powershello powershell_isee premi Enter. Viene visualizzata una finestra di comando di PowerShell con la directory corrente.


3
Quando lo faccio su Win 7, Windows Explorer mi porta in una cartella che ho che si chiama PowerShell!
Sabuncu,

35
Se utilizzi Windows 8 o versioni successive, puoi semplicemente utilizzare il file incorporato -> "Apri Windows Powershell"
Vivek Maharajh,

7
Inoltre, non funziona se si dispone di un profilo PowerShell che imposta la directory di avvio. Se si desidera avviare senza il profilo, è possibile utilizzare "powershell -noprofile", ma si perdono tutte le impostazioni presenti nel profilo. C'è sempre un compromesso.
Grahamesd,

9
qualche scorciatoia per aprirlo come amministratore?
Arsalan Ahmad,

3
Invece di powershell puoi anche digitare powershell_ise, che è più bello poiché è finalmente ridimensionabile e ha un carattere appropriato.
Michael S.,

106

Solo per aggiungere il contrario come trucco, a un prompt di PowerShell puoi fare:

ii .

o

start .

per aprire una finestra di Esplora risorse nella directory corrente.


1
@EBGreen, cosa iisignifica?
Pacerier,

5
Bene, a un prompt di PowerShell potresti semplicemente digitare: Get-Command ii , vedresti che è un alias per Invoke-Item.
EBGreen

79

Se siete su Windows 8, o più tardi, si può semplicemente utilizzare il built-in File → "Open Windows PowerShell".

Oppure Alt+ Fseguito da R.


1
Sì. Ho bloccato anche la versione "Avvia come amministratore".
Vivek Maharajh,

@Andrej, come si fa?
Pacerier,

1
@Pacerier, con il tasto destro del mouse sulla voce di menu corrispondente (ad esempio, su "Apri Windows PowerShell").
Andrej

@Andrej, "Appuntando", intendi l'opzione "Aggiungi alla barra degli strumenti di accesso rapido"?
Pacerier,

1
@Pacerier, sono abbastanza sicuro che questo è ciò che intende. È inoltre possibile aggiungere alla barra delle applicazioni. Dopo averlo aperto, fare clic con il tasto destro sull'icona sulla barra delle applicazioni e bloccarlo.
Vivek Maharajh,


44

In alternativa alla risposta sopra, che richiede di digitare il comando PowerShell ( powershell.exe ) ogni volta, è possibile creare una voce del menu di scelta rapida proprio come nel menu di scelta rapida " Apri finestra di comando qui ".

Esistono tre chiavi di registro in cui vanno questi comandi. Ogni tasto controlla il menu di scelta rapida di un diverso oggetto Esplora risorse. Il primo è quello a cui hai chiesto:

  • HKCR \ Directory \ Background \ shell - Questo è il menu di scelta rapida per la stessa finestra di Explorer (ovvero, il menu di scelta rapida che viene visualizzato quando non è selezionato alcun elemento, ad esempio quando si fa clic con il pulsante destro del mouse in un'area vuota della finestra).
  • HKCR \ Directory \ shell - Questo è il menu di scelta rapida delle cartelle in Esplora risorse.
  • HKCR \ Drive \ shell - Questo è il menu di scelta rapida per le icone dell'unità nella radice di Esplora risorse.

Per ciascuna di queste chiavi di registro, è possibile aggiungere una sottochiave che aggiungerà un comando "Apri finestra PowerShell qui" al menu contestuale, così come si dispone di un menu contestuale "Apri finestra comandi qui".

Ecco una copia del mio file OpenPowerShellHere.reg , che inserisce il comando nel menu di scelta rapida di ciascuno degli oggetti Explorer, lo sfondo della finestra, la cartella e l'icona dell'unità:

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'"

Quindi, con il tuo editor di testo preferito, apri un nuovo file chiamato OpenPowerShellHere.reg . Copia il testo esatto del codice sopra, incollalo nel nuovo file e salvalo. (Avrei incluso una copia del file, ma non sono riuscito a capire se gli allegati fossero possibili.) Se si desidera escludere il comando da una voce, commentare la sezione appropriata con punti e virgola. I miei commenti ti mostrano ogni sezione.

Dopo aver salvato il file, eseguirlo facendo doppio clic su di esso. Quando chiede, digli di procedere. Non appena lo avvierai, appariranno le voci del menu contestuale!

Ecco il menu contestuale della mia finestra di Explorer. Ho evidenziato i comandi della console e PowerShell. Come puoi vedere, puoi anche aggiungere una voce di menu contestuale per eseguire una finestra di comando elevata, ad esempio Esegui come amministratore .

Voce di PowerShell nel menu di scelta rapida di Explorer

Nota : le voci del menu contestuale sono visualizzate in ordine alfabetico, in base alle rispettive chiavi di registro. Il nome chiave per la shell dei comandi elevata è " runas ", motivo per cui viene dopo la voce di PowerShell.

Nota : se è aperta una finestra di Explorer, potrebbe essere necessario chiuderla e riaprirla per rendere effettive le modifiche.

Nota : in Windows 7, HKCR\Directory\Shellnon funziona se si utilizza il toolkit sul lato di Explorer

(es. facendo clic su Documenti sotto l'intestazione Librerie)

devi navigare usando Computer -> C: -> to -> Some -> Target -> Directory


Un problema qui è quando apro una finestra PS usando questo menu di scelta rapida e accedo git help <cmd>, scarica il file della guida html nella finestra PS come testo normale. Quando uso il menu Start, quella finestra PS apre il browser come dovrebbe.
ProfK

@ProfK, non sono sicuro di cosa stia succedendo lì, dal momento che non uso 'git', tuttavia, la finestra PS che si apre usando questo menu contestuale è IDENTICA alla finestra PS che si apre usando il menu Start, A MENO CHE usando PowerShell ISE quando lo esegui dal menu Start. In tal caso, è possibile modificare "powershell.exe" nel file di registro sopra in "powershell_ise.exe". Se stai eseguendo il normale PowerShell, allora non c'è differenza, a parte la directory in cui iniziano. Il comando del menu Start si avvia nella directory dell'utente, mentre il menu di scelta rapida si avvia nella directory locale.
geo

@ProfK, è possibile che sia la directory di partenza a fare la differenza? Se hai qualcosa nella tua directory utente riguardante 'git', forse questa è la differenza. Lo scopo del menu di scelta rapida è aprire PS nella directory LOCAL, ma se il comando 'git' viene eseguito in modo diverso in base alla directory in cui ci si trova, potrebbe essere il problema. La differenza nella directory e la differenza tra PS e PS ISE sono le uniche cose a cui riesco a pensare.
geo

@geo Grazie per tutto il feedback, ma ho scoperto che fare doppio clic sui file html in Explorer li stava aprendo in Notepad ++. Ho impostato il mio "Apri con" predefinito su Chrome, ma ho anche installato Posh-Git allo stesso tempo, e ora il mio aiuto Git si apre in Chrome, non in PS. Il lato triste è che non so che cosa ha cambiato le cose fisse.
ProfK

1
Lo script PS per aggiungere un prompt PS elevato (rimuovere la riga HasLUAShield per non elevato) è @ powershellmagazine.com/2013/06/25/…
James Manning,


14

In Windows 10 sia il prompt dei comandi che il prompt di PowerShell sono disponibili tramite la barra dei menu, sia per non amministratori che per amministratori. Queste opzioni avranno la cartella impostata sulla cartella attualmente selezionata da Explorer.

Almeno per la versione svedese, PowerShell viene aperto con Alt F+I. Per un amministratore PowerShell è Alt F+S+P.

Menu di Windows Powershell

Se quelli non sono i caratteri corretti, è possibile tenere premuto il Alttasto per visualizzare i caratteri corretti. ci sarà un carattere sovrapposto alla voce di menu per ogni passaggio.


2
È [Alt] [F + S + A] per PowerShell amministratore su Windows 10 (versione inglese)
Rosdi Kasim

6

Volevo che questo menu di scelta rapida funzionasse solo quando si fa clic con il tasto destro e si tiene premuto il tasto "MAIUSC", ovvero come funziona il menu di scelta rapida "Apri finestra di comando qui".

Tuttavia, nessuna delle soluzioni fornite lo ha fatto, quindi ho dovuto eseguire il rollup del mio .regfile: copia il seguente, salvalo come power-shell-here-on-shift.rege fai doppio clic su di esso.

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'"

apri la shell di potere tenendo premuto MAIUSC e premendo il tasto destro


5

Prova PowerShell PowerToy ... Aggiunge una voce di menu contestuale per Apri PowerShell qui .

In alternativa, è possibile creare un collegamento che apre PowerShell con la cartella Avvia in come cartella Progetti.


3

È ancora più semplice in Windows 8.1 e Server 2012 R2.

Fallo una volta: fai clic con il tasto destro sulla barra delle applicazioni, scegli Proprietà. Nella scheda Navigazione, attiva [✓] Sostituisci prompt dei comandi con Windows PowerShell nel menu quando faccio clic con il pulsante destro del mouse sull'angolo inferiore sinistro o premo il tasto Windows + X .

Poi ogni volta che si desidera un prompt di PowerShell, colpito Win+X, I. (Oppure Win+X, Aper un prompt di Admin PowerShell)


4
Bella scorciatoia, tuttavia questo non avvia PowerShell nella cartella corrente.
Steenhulthin,

3

Di seguito è riportato un riepilogo conciso (e aggiornato) delle soluzioni precedenti. Ecco cosa fare:

Aggiungi queste stringhe e le rispettive chiavi principali:

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

in queste posizioni

HKCR\Directory\shell (for folders)
HKCR\Directory\Background\shell (Explorer window)
HKCR\Drive\shell (for root drives)

Questo è tutto. Aggiungi le stringhe "Estese" affinché i comandi siano visibili solo se tieni premuto il tasto "Maiusc", tutto il resto è superfluo.


3

C'è un'estensione di Windows Explorer creata dal tizio che crea strumenti per SVN che aprirà almeno una finestra del prompt dei comandi.

Non l'ho ancora provato, quindi non so se farà PowerShell, ma volevo condividere l'amore con i miei fratelli Stack Overflow:

http://tools.tortoisesvn.net/StExBar


2

Un'altra opzione sono gli eccellenti PowerToys di elevazione di Michael Murgolo su TechNet all'indirizzo http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx .

Includono il prompt di PowerShell qui e il prompt di PowerShell qui come amministratore.


Sebbene questo collegamento possa rispondere alla domanda, è meglio includere qui le parti essenziali della risposta e fornire il collegamento come riferimento. Le risposte di solo collegamento possono diventare non valide se la pagina collegata cambia.
Lundin,

Questo è un punto valido da considerare quando si pubblica un collegamento; tuttavia, l'articolo collegato contiene il download autorevole sui PowerToys di elevazione, che è la parte essenziale della risposta.
Mark Larson,

2

Aggiungendo le chiavi di registro di seguito, in Windows 10, sono riuscito a ottenere l' opzione Apri PowerShell qui nei miei SHIFT + RClickmenu di scelta rapida . Basta copiarli in un file di blocco note vuoto, quindi salvarli come .regfile ed eseguire il file per aggiungere la chiave e dovrebbe funzionare da lì. Alcune di queste altre risposte dicono di aggiungere la chiave in HKCR \ Directory \ shell ma ho scoperto che per me ha funzionato solo con le chiavi che vanno in 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
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."
}

È possibile scaricare lo script di dettaglio da come avviare PowerShell da Esplora risorse


1

Un'alternativa abbastanza semplice è quella di invocare PowerShell tramite un collegamento. Esiste una proprietà di collegamento denominata "Avvia in" che indica quale directory (cartella) utilizzare quando viene richiamato il collegamento.

Se la casella Inizia in è vuota, significa utilizzare la directory corrente.

Quando si crea per la prima volta un collegamento a PowerShell nel solito modo, la casella di avvio specifica la home directory. Se cancelli la casella di avvio, ora hai un collegamento a PowerShell che apre PS nella directory corrente, qualunque essa sia.

Se ora copi questo collegamento nella directory di destinazione e utilizzi explorer per richiamarlo, avvierai un PS che punta alla directory di destinazione.

C'è già una risposta accettata a questa domanda, ma la offro in un altro modo.


1

Per gli utenti di autohotkey, ecco uno snippet che sto usando

Si apre la finestra di PowerShell quando si preme Ctrl-Alt-T. (Testato con Win10)

Se la "finestra attiva" è una finestra di Windows Explorer, PowerShell viene aperto nella cartella corrente . Altrimenti, basta aprire PowerShell in una cartella predefinita .

Utilizzo: 1) Installa AutoHotkey e copia incolla questo in myscript.ahk 2) Sostituisci <DefaultPath>con il percorso che preferisci. 3) Esegui lo script.

; 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

Sono sorpreso che nessuno abbia dato questa risposta, è la più semplice. (Deve essere l'anno.)

Maiusc + tasto destro del mouse in Esplora risorse. Quindi puoi "Aprire la finestra di PowerShell qui".

Per impostazione predefinita, può essere impostato su Prompt dei comandi. In tal caso, puoi modificarlo nelle Impostazioni di Windows 10: vai su Personalizzazione -> Barra delle applicazioni e abilita "Sostituisci prompt dei comandi con Windows PowerShell nel menu quando faccio clic con il pulsante destro del mouse sul pulsante Start o premo il tasto Windows + X".


1

Windows 10 lo ha reso molto più semplice. Puoi:

  • [MAIUSC] + [tasto destro] su una cartella e si ottiene una voce di menu Open PowerShell window here.

O puoi:

  • File-> Open Windows PowerShell.

E per un bonus ...

Se fai clic con il tasto destro su File-> Open Windows PowerShell, puoi Add to Quick Access Toolbar:

inserisci qui la descrizione dell'immagine

Che mette qui un'icona utile:

inserisci qui la descrizione dell'immagine

E ora puoi semplicemente fare clic su quell'icona. :)

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.