/ / Come si avvia PowerShell da Windows Explorer? - Windows, PowerShell

Come posso avviare PowerShell da Windows Explorer? - Windows, PowerShell

C'è un modo per avviare PowerShell in una cartella specifica da Windows Explorer, ad es. fare clic con il tasto destro in una cartella e avere 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.

risposte:

461 per risposta № 1

In Windows Explorer, vai alla barra degli indirizzi in alto (scorciatoie da tastiera: alt+D o Ctrl+L) e digitare powershell o powershell_ise e premere accedere. Si apre una finestra di comando di PowerShell con la directory corrente.


96 per risposta № 2

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

ii .

o

start .

per aprire una finestra di Esplora risorse di Windows nella directory corrente.


61 per risposta № 3

Se utilizzi Windows 8 o versioni successive, puoi semplicemente utilizzare il built-in File → "Apri Windows PowerShell".

O alt + F seguito da R.


55 per risposta № 4

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

Scott Hanselman ha un'inf molto semplice che lo farà per te. Se vuoi modificare lo script è davvero facile andare a modificare l'inf per le personalizzazioni.


39 per risposta № 5

In alternativa alla risposta precedente, che richiede di digitare il comando PowerShell (powershell.exe) ogni volta, puoi creare una voce del menu contestuale proprio come con "Apri la finestra di comando qui" menù contestuale.

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

  • HKCRDirectoryBackgroundshell - Questo è il menu contestuale per la finestra Explorer stessa (ovvero, il menu contestuale che viene visualizzato quando nessun elemento è selezionato, come quando si fa clic con il pulsante destro del mouse in un'area vuota della finestra).
  • HKCRDirectoryshell - Questo è il menu contestuale delle cartelle in Windows Explorer.
  • HKCRDriveshell - Questo è il menu contestuale per le icone delle unità nella radice di Windows Explorer.

Per ciascuna di queste chiavi di registro, è possibile aggiungere una sottochiave che aggiungerà un comando "Apri la finestra di PowerShell qui" al menu di scelta rapida, proprio come si dispone di un menu di scelta rapida "Apri finestra di comando qui".

Ecco una copia del mio OpenPowerShellHere.reg file, che inserisce il comando nel menu contestuale di ciascuno degli oggetti di 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_ROOTDirectoryBackgroundshellpowershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""

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

;
; Add context menu entry to Windows Explorer folders
;
[HKEY_CLASSES_ROOTDirectoryshellpowershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOTDirectoryshellpowershellcommand]
@="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_ROOTDriveshellpowershell]
@="Open PowerShell window here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOTDriveshellpowershellcommand]
@="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 denominato OpenPowerShellHere.reg. Copia il file esatto testo 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 vuoi escludere il comando da una delle voci, basta commentare la sezione appropriata con punto e virgola. I miei commenti ti mostrano ogni sezione.

Dopo aver salvato il file, eseguilo facendo doppio clic su di esso. Quando chiede, digli di procedere. Non appena lo esegui, verranno visualizzate le voci del menu contestuale!

Ecco il menu contestuale della finestra di Explorer. Ho evidenziato la console e i comandi di PowerShell. Come puoi vedere, puoi anche aggiungere una voce del menu contestuale per eseguire una finestra di comando con privilegi elevati, ad es. Esegui come amministratore.

Voce di PowerShell nel menu contestuale di Explorer

Nota: Le voci del menu contestuale vengono visualizzate in ordine alfabetico, in base alle rispettive chiavi di registro. Il nome della chiave per la shell dei comandi con privilegi elevati è "correre come", motivo per cui viene dopo la voce PowerShell.


32 per risposta № 6

Puoi scaricare il file inf da qui - Presentazione del prompt di PowerShell qui


11 per risposta № 7

In Windows 10 sia il prompt dei comandi che il fileIl prompt di PowerShell può essere trovato tramite la barra dei menu, sia per i non amministratori che per gli amministratori. Queste opzioni avranno la loro cartella impostata sulla cartella attualmente selezionata dall'explorer.

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

Menu di Windows Powershell

Se questi non sono i caratteri corretti, puoi tenere premuto il tasto alt tasto per vedere i caratteri corretti. ci sarà un carattere che si sovrappone alla voce di menu per ogni passaggio.


5 per risposta № 8

Volevo che questo menu contestuale funzionasse solo quando clic destro e detenzione il "MAIUSC" che è il modo in cui funziona il menu di scelta rapida "Apri la finestra di comando qui".

Tuttavia, nessuna delle soluzioni fornite lo ha fatto, quindi ho dovuto eseguire il mio .reg file - copia il seguente, salvalo come power-shell-here-on-shift.reg e fare doppio clic su di esso.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOTDirectoryshellpowershell]
@="Open PowerShell here"
"NoWorkingDirectory"=""
"Extended"=""

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

aprire il power shell qui tenendo premuto il tasto Maiusc e premendo il tasto destro del mouse


4 per risposta № 9

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

Fallo una volta: Fare clic con il tasto destro sulla barra delle applicazioni, scegliere Proprietà. Nella scheda Navigazione, attiva [✓] Sostituisci il 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.

Quindi ogni volta che vuoi un prompt di PowerShell, premi Win + X, io. (O Win + X, UN per un prompt di PowerShell di amministrazione)


4 per risposta № 10

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

Oppure puoi creare un collegamento che apre PowerShell con la cartella Start In che è la tua cartella Progetti.


3 per risposta № 11

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 funzionerà con PowerShell, ma volevo condividere l'amore con i miei fratelli Stack Overflow:

http://tools.tortoisesvn.net/StExBar


2 per risposta № 12

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

Includono Prompt di PowerShell qui e Prompt di PowerShell qui come amministratore.


2 per risposta № 13

Quello che segue è un riassunto conciso (e aggiornato) delle soluzioni precedenti. Ecco cosa fare:

Aggiungi queste stringhe e le rispettive chiavi padre:

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

in questi luoghi

HKCRDirectoryshell (for folders)
HKCRDirectoryBackgroundshell (Explorer window)
HKCRDriveshell (for root drives)

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


1 per risposta № 14

Aggiungendo le chiavi di registro di seguito, in Windows 10, sono riuscito a ottenere il file Apri PowerShell qui opzione nel mio SHIFT + RClick menu contestuali. Basta copiarli in un file di blocco note vuoto, quindi salvarli come file .reg file ed esegui il file per aggiungere la chiave e dovrebbe funzionare da lì. Alcune di queste altre risposte dicono di aggiungere la chiave in HKCRDirectoryshell ma ho scoperto che per me funzionava solo con le chiavi in ​​entrata HKLMSOFTWAREClassesDirectoryshell

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINESOFTWAREClassesDirectorybackgroundshellpowershell]
"Extended"=""
"NoWorkingDirectory"=""
@="Open PowerShell here"
"Icon"="%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe"

[HKEY_LOCAL_MACHINESOFTWAREClassesDirectorybackgroundshellpowershellcommand]
@="C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command Set-Location -LiteralPath "%V""

[HKEY_LOCAL_MACHINESOFTWAREClassesDirectoryshellpowershell]
@="Open PowerShell here"
"Extended"=""
"Icon"="%SystemRoot%\system32\WindowsPowerShell\v1.0\powershell.exe"
"NoWorkingDirectory"=""

[HKEY_LOCAL_MACHINESOFTWAREClassesDirectoryshellpowershellcommand]
@="C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe -NoExit -Command Set-Location -LiteralPath "%V""

1 per risposta № 15
New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
if(-not (Test-Path -Path "HKCR:Directoryshell$KeyName"))
{
Try
{
New-Item -itemType String "HKCR:Directoryshell$KeyName" -value "Open PowerShell in this Folder" -ErrorAction Stop
New-Item -itemType String "HKCR:Directoryshell$KeyNamecommand" -value "$env:SystemRootsystem32WindowsPowerShellv1.0powershell.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."
}

Puoi scaricare lo script di dettaglio da come avviare PowerShell da Windows Explorer


1 per risposta № 16

Un'alternativa abbastanza semplice è richiamare PowerShell tramite un collegamento. C'è una proprietà di scelta rapida denominata "Avvia in" che indica quale directory (cartella) utilizzare quando viene richiamata la scelta rapida.

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

Quando crei per la prima volta un collegamento a PowerShell innel solito modo, l'inizio in box specifica la directory home. Se cancelli l'inizio nella casella, 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 invocarlo, avvierai un PS che punta alla directory di destinazione.

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


1 per risposta № 17

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 Esplora risorse di Windows, PowerShell viene aperto nel file cartella corrente. Altrimenti, apri semplicemente PowerShell in alcuni file cartella predefinita.

Utilizzo: 1) Installa AutoHotkey e copialo e incollalo in myscript.ahk 2) Sostituisci <DefaultPath> con percorso a tua scelta. 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%system32WindowsPowerShellv1.0powershell.exe" -NoExit -Command &{%psScript%}
}
return