¿Cómo inicio PowerShell desde el Explorador de Windows?

259

¿Hay alguna forma de iniciar PowerShell en una carpeta específica desde el Explorador de Windows, por ejemplo, hacer clic derecho en una carpeta y tener una opción como "Abrir PowerShell en esta carpeta"?

Es realmente molesto tener que cambiar los directorios a la carpeta de mi proyecto la primera vez que ejecuto MSBuild todos los días.

Josh Kodroff
fuente
16
[Alt] [F + S + A] para iniciar el administrador de PowerShell en la carpeta actual. Para Windows 10 al menos.
Rosdi Kasim
Esta es la respuesta: channel9.msdn.com/Shows/Defrag-Tools/…
HelpingHand

Respuestas:

526

En el Explorador de Windows, simplemente vaya a la Barra de direcciones en la parte superior (métodos abreviados de teclado: Alt+ Do Ctrl+ L) y escriba powershello powershell_isey presione Enter. Se abre una ventana de comando de PowerShell con el directorio actual.

Ashwin Nanjappa
fuente
3
Cuando hago esto en Win 7, el Explorador de Windows me lleva a una carpeta que tengo llamada PowerShell.
Sabuncu
35
Si tiene Windows 8 o posterior, simplemente puede usar el archivo incorporado -> "Abrir Windows Powershell"
Vivek Maharajh
77
Tampoco funciona si tiene un perfil de PowerShell que establece el directorio de inicio. Si desea iniciar sin el perfil, puede usar "powershell -noprofile", pero luego pierde cualquier configuración que tenga en el perfil. Siempre hay un intercambio.
grahamesd
9
¿Algún atajo para abrirlo como administrador?
Arsalan Ahmad
3
En lugar de powershell, también podría escribir powershell_ise, que es más agradable ya que finalmente es redimensionable y tiene una fuente adecuada.
Michael S.
106

Solo para agregar el reverso como un truco, en el indicador de PowerShell puede hacer:

ii .

o

start .

para abrir una ventana del Explorador de Windows en su directorio actual.

EBGreen
fuente
1
@EBGreen, ¿Qué iisignifica?
Pacerier
55
Bueno, en el indicador de PowerShell puedes simplemente escribir: Get-Command ii, entonces verías que es un alias para Invoke-Item.
EBGreen
79

Si tiene Windows 8 o posterior, simplemente puede usar el Archivo incorporado → "Abrir Windows PowerShell".

O Alt+ Fseguido de R.

Vivek Maharajh
fuente
1
Sip. También he anclado la versión "Iniciar como administrador".
Vivek Maharajh
@Andrej, ¿cómo haces eso?
Pacerier
1
@Pacerier, con el botón derecho del mouse en el elemento del menú correspondiente (por ejemplo, en "Abrir Windows PowerShell").
Andrej
@Andrej, Al "anclar", ¿se refiere a la opción "Agregar a la barra de herramientas de acceso rápido"?
Pacerier
1
@Pacerier, estoy bastante seguro de que eso es lo que quiere decir. También puede anclar a su barra de tareas. Después de abrirlo, haga clic derecho en el icono en la barra de tareas y fíjelo.
Vivek Maharajh
57

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

Scott Hanselman tiene una información realmente simple que hará esto por usted. Si desea modificar el script, es realmente fácil ir y editar el inf para personalizaciones.

Chris Sutton
fuente
¿Puede proporcionar un resumen (p. Ej., La rotura de enlaces siempre es un problema)?
Peter Mortensen
¿Qué es un "inf" (en este contexto)?
Peter Mortensen
44

Como alternativa a la respuesta anterior, que requiere que escriba el comando PowerShell ( powershell.exe ) cada vez, puede crear una entrada de menú contextual al igual que con el menú contextual " Abrir ventana de comandos aquí ".

Hay tres claves de registro donde van estos comandos. Cada tecla controla el menú contextual de un objeto diferente del Explorador de Windows. El primero es el que preguntaste:

  • HKCR \ Directory \ Background \ shell : este es el menú contextual de la propia ventana del Explorador (es decir, el menú contextual que se muestra cuando no se selecciona ningún elemento, como al hacer clic con el botón derecho en un área vacía de la ventana).
  • HKCR \ Directory \ shell : este es el menú contextual de las carpetas en el Explorador de Windows.
  • HKCR \ Drive \ shell : este es el menú contextual de los iconos de la unidad en la raíz del Explorador de Windows.

Para cada una de estas claves de registro, puede agregar una subclave que agregará un comando "Abrir ventana de PowerShell aquí" al menú contextual, del mismo modo que tiene un menú contextual "Abrir ventana de comandos aquí".

Aquí hay una copia de mi archivo OpenPowerShellHere.reg , que coloca el comando en el menú contextual de cada uno de los objetos del Explorador, el fondo de la ventana, la carpeta y el icono de la unidad:

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

Entonces, con su editor de texto favorito, abra un nuevo archivo llamado OpenPowerShellHere.reg . Copie el texto exacto del código anterior, péguelo en el nuevo archivo y guárdelo. (Hubiera incluido una copia del archivo, pero no pude averiguar si los archivos adjuntos eran posibles). Si desea excluir el comando de una de las entradas, simplemente comente la sección correspondiente con punto y coma. Mis comentarios te muestran cada sección.

Después de guardar el archivo, ejecútelo haciendo doble clic en él. Cuando pregunte, dígale que continúe. ¡Tan pronto como lo ejecute, aparecerán las entradas del menú contextual!

Aquí está mi menú contextual de la ventana de Explorer. He resaltado la consola y los comandos de PowerShell. Como puede ver, también puede agregar una entrada de menú contextual para ejecutar una ventana de comando elevada, es decir, Ejecutar como administrador .

Entrada de PowerShell en el menú contextual del Explorador

Nota : Las entradas del menú contextual se muestran alfabéticamente, en función de sus claves de registro. El nombre clave para el shell de comando elevado es " runas ", por lo que viene después de la entrada de PowerShell.

Nota : Si tiene abierta una ventana del explorador, es posible que deba cerrarla y volver a abrirla para que los cambios surtan efecto.

Nota : en Windows 7, HKCR\Directory\Shellno funciona si usa el kit de herramientas en el lateral del explorador

(es decir, hacer clic en Documentos debajo del encabezado Bibliotecas)

debes navegar usando Computer -> C: -> to -> Some -> Target -> Directory

geo
fuente
Un problema aquí, es cuando abro una ventana PS usando este menú contextual, y entro git help <cmd>, vuelca el archivo de ayuda html en la ventana PS como texto sin formato. Cuando uso el menú de inicio, esa ventana de PS abre el navegador como se supone que debe hacerlo.
ProfK
@ProfK, no estoy seguro de lo que está sucediendo allí, ya que no uso 'git', sin embargo, la ventana PS que se abre con este menú contextual es IDÉNTICA para la ventana PS que se abre con el menú Inicio, A MENOS QUE sea usando PowerShell ISE cuando lo ejecuta desde el menú Inicio. Si ese es el caso, puede cambiar "powershell.exe" en el archivo de registro anterior a "powershell_ise.exe". Si está ejecutando el PowerShell normal, entonces no hay diferencia, aparte del directorio en el que comienzan. El comando del menú Inicio comienza en su directorio de usuario, mientras que el menú contextual comienza en el directorio local.
geo
@ProfK, ¿es posible que sea el directorio inicial el que marque la diferencia? Si tiene algo en su directorio de usuarios relacionado con 'git', tal vez esa sea la diferencia. Todo el propósito del menú contextual es abrir PS en el directorio LOCAL, pero si el comando 'git' se ejecuta de manera diferente según el directorio en el que se encuentre, ese podría ser el problema. La diferencia de directorio y la diferencia entre PS y PS ISE son las únicas cosas en las que puedo pensar.
geo
@geo Gracias por todos los comentarios, pero descubrí que hacer doble clic en los archivos html en Explorer los estaba abriendo en Notepad ++. Configuré mi "Abrir con" predeterminado en Chrome, pero también instalé Posh-Git al mismo tiempo, y ahora mi ayuda de Git se abre en Chrome, no en PS. El lado triste es que no sé qué cambió las cosas fijas.
ProfK
1
La secuencia de comandos PS para agregar un mensaje PS elevado (eliminar la línea HasLUAShield para no elevado) es @ powershellmagazine.com/2013/06/25/…
James Manning el
14

En Windows 10, tanto el símbolo del sistema como el símbolo de PowerShell se pueden encontrar a través de la barra de menú, tanto para no administradores como para administradores. Estas opciones tendrán su carpeta establecida en la carpeta actualmente seleccionada del explorador.

Por lo menos para la versión sueca, se abre el PowerShell con Alt F+I. Para un administrador, PowerShell es Alt F+S+P.

Menú de Windows Powershell

Si esos no son los caracteres correctos, puede mantener presionada la Alttecla para ver los caracteres correctos. habrá un personaje superponiendo el elemento del menú para cada paso.

Defecto
fuente
2
Es [Alt] [F + S + A] para el administrador de PowerShell en mi Windows 10 (versión en inglés)
Rosdi Kasim
6

Quería que este menú contextual funcionara solo al hacer clic derecho y mantener presionado el botón 'SHIFT', que es cómo funciona el menú contextual integrado 'Abrir ventana de comandos aquí'.

Sin embargo, ninguna de las soluciones proporcionadas lo hizo, así que tuve que rodar mi propio .regarchivo: copie el siguiente, guárdelo como power-shell-here-on-shift.regy haga doble clic en él.

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

abra la carcasa de energía aquí mientras mantiene presionada la tecla Mayús y presiona el botón derecho

Daniel Sokolowski
fuente
5

Pruebe PowerShell PowerToy ... Agrega un elemento de menú contextual para Abrir PowerShell aquí .

O bien, puede crear un acceso directo que abra PowerShell con la carpeta Inicio en su carpeta Proyectos.

Steven Murawski
fuente
3

Es aún más fácil en Windows 8.1 y Server 2012 R2.

Haga esto una vez: haga clic derecho en la barra de tareas, elija Propiedades. En la pestaña de navegación, active [✓] Reemplazar símbolo del sistema con Windows PowerShell en el menú cuando haga clic en la esquina inferior izquierda o pulse la tecla de Windows + X .

A continuación, siempre que lo desee una pronta PowerShell, golpe Win+X, I. (O Win+X, Apara una solicitud de Admin PowerShell)

Warren Rumak
fuente
44
Buen acceso directo, sin embargo, esto no inicia PowerShell en la carpeta actual.
steenhulthin
3

Lo siguiente es un resumen conciso (y actualizado) de las soluciones anteriores. Esto es lo que debes hacer:

Agregue estas cadenas y sus respectivas claves principales:

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

en estos lugares

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

Eso es. Agregue las cadenas "extendidas" para que los comandos solo sean visibles si mantiene presionada la tecla "Shift", todo lo demás es superfluo.

ppw0
fuente
3

Hay una extensión de Windows Explorer hecha por el tipo que hace herramientas para SVN que al menos abrirá una ventana de símbolo del sistema.

Todavía no lo he probado, así que no sé si funcionará PowerShell, pero quería compartir el amor con mis hermanos de Stack Overflow:

http://tools.tortoisesvn.net/StExBar

Josh Kodroff
fuente
2

Otra opción son los excelentes Elevation PowerToys de Michael Murgolo en TechNet en http://technet.microsoft.com/en-us/magazine/2008.06.elevation.aspx .

Incluyen PowerShell Prompt Here y PowerShell Prompt Here como administrador.

Mark Larson
fuente
Si bien este enlace puede responder la pregunta, es mejor incluir aquí las partes esenciales de la respuesta y proporcionar el enlace como referencia. Las respuestas de solo enlace pueden dejar de ser válidas si la página vinculada cambia.
Lundin
Ese es un punto válido a tener en cuenta al publicar un enlace; sin embargo, el artículo vinculado contiene la descarga autorizada a Elevation PowerToys, que es la parte esencial de la respuesta.
Mark Larson el
2

Al agregar las claves de registro a continuación, en Windows 10, logré obtener la opción Abrir PowerShell Aquí en mis SHIFT + RClickmenús contextuales. Simplemente copie estos en un archivo de bloc de notas en blanco, guárdelos como un .regarchivo y ejecute el archivo para agregar la clave y debería funcionar desde allí. Algunas de estas otras respuestas dicen agregar la clave en HKCR \ Directory \ shell, pero descubrí que para mí solo funcionaba con las claves que entraban en 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'"
Rhys
fuente
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."
}

Puede descargar una secuencia de comandos detallada de cómo iniciar PowerShell desde el Explorador de Windows

bronceado franco
fuente
1

Una alternativa bastante simple es invocar PowerShell a través de un acceso directo. Hay una propiedad de acceso directo etiquetada "Iniciar en" que dice qué directorio (carpeta) usar cuando se invoca el acceso directo.

Si el cuadro Iniciar en está en blanco, significa usar el directorio actual.

Cuando crea un acceso directo a PowerShell por primera vez de la manera habitual, el cuadro de inicio especifica el directorio de inicio. Si deja en blanco el cuadro de inicio, ahora tiene un acceso directo a powershell que abre PS en el directorio actual, sea lo que sea.

Si ahora copia este acceso directo al directorio de destino y utiliza el explorador para invocarlo, comenzará un PS que apunta al directorio de destino.

Ya hay una respuesta aceptada a esta pregunta, pero la ofrezco de otra manera.

Walter Mitty
fuente
1

Para los usuarios de autohotkey, heres un fragmento que estoy usando

Abre la ventana de PowerShell, al presionar Ctrl-Alt-T. (Probado con Win10)

Si su "ventana activa" es una ventana del Explorador de Windows, PowerShell se abre en la carpeta actual . De lo contrario, solo abra PowerShell en alguna carpeta predeterminada .

Uso: 1) Instale AutoHotkey, y copie y pegue esto en myscript.ahk 2) Reemplace <DefaultPath>con la ruta de su elección. 3) Ejecute el 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
np8
fuente
1

Me sorprende que nadie haya dado esta respuesta, es la más simple. (Debe ser el año).

Simplemente Shift + clic derecho en el Explorador. Entonces puede "Abrir la ventana de PowerShell aquí".

Se puede establecer en Símbolo del sistema de forma predeterminada. Si es así, puede cambiar esto en la Configuración de Windows 10: vaya a Personalización -> Barra de tareas y habilite "Reemplazar símbolo del sistema con Windows PowerShell en el menú cuando haga clic derecho en el botón de inicio o presione la tecla de Windows + X".

Andrés
fuente
1

Windows 10 lo hizo mucho más fácil. Tu también puedes:

  • [MAYÚS] + [clic derecho] en una carpeta y obtienes un elemento de menú Open PowerShell window here.

O tu puedes:

  • File-> Open Windows PowerShell.

Y por un bono ...

Si hace clic derecho en File-> Open Windows PowerShell, entonces puede Add to Quick Access Toolbar:

ingrese la descripción de la imagen aquí

Lo que pone aquí un ícono útil:

ingrese la descripción de la imagen aquí

Y ahora puedes hacer clic en ese icono. :)

Craigo
fuente