¿Es posible abrir una ventana del Explorador de Windows desde PowerShell?


304

Estoy seguro de que esto debe ser posible, pero no puedo descubrir cómo hacerlo.

¿Alguna pista?

Respuestas:


666

Utilizar:

ii .

que es la abreviatura de

Invoke-Item .

Es una de las cosas más comunes que escribo en la línea de comandos de PowerShell.


3
Es curioso que nadie haya respondido a esta respuesta más simple que tú. :)
halr9000

15
Soy una persona muy simple
EBGreen

85
Este comando es la abreviatura de Invoke-Item. El punto después puede ser cualquier camino.
M. Dudley

Impresionante, muy simple respuesta! Me gusta.
Anthony Liriano

Entonces, el primer parámetro predeterminado de iies explorer, el segundo parámetro es la ruta.
Timo

145

Tienes pocas opciones:

  • Powershell busca ejecutables en su ruta, al igual que cmd.exe. Por lo tanto, puede escribir Explorer en el indicador de PowerShell. Con este método, también puede pasar argumentos de línea cmd (consulte http://support.microsoft.com/kb/314853 )
  • El cmdlet Invoke-Item proporciona una forma de ejecutar un archivo ejecutable o abrir un archivo (o conjunto de archivos) desde Windows PowerShell. Alias : ii
  • use system.diagnostics.process

Ejemplos:

PS C:\> explorer
PS C:\> explorer .
PS C:\> explorer /n
PS C:\> Invoke-Item c:\path\
PS C:\> ii c:\path\
PS C:\> Invoke-Item c:\windows\explorer.exe
PS C:\> ii c:\windows\explorer.exe
PS C:\> [diagnostics.process]::start("explorer.exe")

55
También puede hacer: invoke-item c: \ path \
x0n

Esta es la respuesta mejor redactada y más informativa aquí, y también debe incluir las otras respuestas votadas aquí, especialmente "ii".
DaveD

iies un alias deInvoke-Item
Kolob Canyon

32

Use cualquiera de estos:

  1. start .
  2. explorer .
  3. start explorer .
  4. ii .
  5. invoke-item .

Puede aplicar cualquiera de estos comandos en PowerShell.

En caso de que desee abrir el explorador desde el símbolo del sistema, los dos últimos comandos no funcionan y los tres primeros funcionan bien.


23

Solo usa el Invoke-Itemcmdlet. Por ejemplo, si desea abrir una ventana del explorador en el directorio actual, puede hacer lo siguiente:

Invoke-Item .

Un alias para eso es ii.
VivekDev

20
explorer .

Esto es lo que he estado usando durante años, pero recientemente explorerparece estar fuera de mi camino
DaveD

18

Encontré esta pregunta buscando una manera de abrir una ventana de Explorer desde PowerShell y también seleccionar un archivo. Estoy agregando esta respuesta en caso de que otros la encuentren por la misma razón.

Para iniciar el Explorador y seleccionar un archivo, use Invoke-Expression:

Invoke-Expression "explorer '/select,$filePath'"

Probablemente hay otras formas de hacer esto, pero esto funcionó para mí.


10
$startinfo = new-object System.Diagnostics.ProcessStartInfo 
$startinfo.FileName = "explorer.exe"
$startinfo.WorkingDirectory = 'D:\foldername'

[System.Diagnostics.Process]::Start($startinfo)

Espero que esto ayude


1
No sé por qué esto se está rechazando: puedo ver que no lo voté por falta de elegancia, pero sigue siendo una buena (aunque prolija) respuesta :) Me entiendes.
slipsec

1
Estoy de acuerdo. Es mucho más código, pero permite cierta flexibilidad.
Mike Shepard

Cuando uso este código, abre el Explorador, pero no el directorio que pasé como WorkingDirectory. Simplemente abre la carpeta Bibliotecas. La respuesta presentada por shovavnik lo hace correctamente en una sola línea.
Phoenix14830


2

Quería escribir esto como un comentario, pero no tengo 50 reputación.

Todas las respuestas en este hilo son esencialmente usar Invoke-Item o usar explorer.exe directamente; sin embargo, esto no es completamente sinónimo de "abrir carpeta que contiene", por lo que en términos de abrir una ventana del Explorador como dice la pregunta, si quisiéramos aplicar la respuesta a un archivo en particular, la pregunta aún no ha sido respondida.

p.ej,

Invoke-Item C:\Users\Foo\bar.txt
explorer.exe C:\Users\Foo\bar.html

^ esos dos comandos darían lugar a que se invoque Notepad.exe o Firefox.exe en los dos archivos respectivamente, no una ventana explorer.exe en C: \ Users \ Foo \ (el directorio que lo contiene).

Mientras que si uno emitiera este comando desde powershell, esto no sería un gran problema (menos escribir de todos modos), si uno está haciendo scripts y necesita "abrir la carpeta que contiene" en una variable, se convierte en una cuestión de coincidencia de cadenas para extraer el directorio de La ruta completa al archivo.

¿No existe un comando simple "Open-Containing-Folder" que pueda sustituir una variable?

p.ej,

$foo = "C:\Users\Foo\foo.txt"    
[some code] $fooPath
# opens C:\Users\Foo\ and not the default program for .txt file extension

2
Invoke-Item ([io.fileinfo] "C: \ temp \ file.txt"). Directorio
Dave_J

Una alternativa que es esencialmente la misma pero que lo mantiene todo en los cmdlets de Powershell: ii (Split-Path "C: \ temp \ file.txt")
EBGreen

0

Esto es lo único que se ajusta a mis limitaciones únicas de querer que la carpeta se abra como una pestaña Quizo en cualquier ventana del Explorador existente.

$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.