É possível abrir uma janela do Windows Explorer no PowerShell?


304

Tenho certeza de que isso deve ser possível, mas não consigo descobrir como fazê-lo.

Alguma pista?

Respostas:


666

Usar:

ii .

que é abreviação de

Invoke-Item .

É uma das coisas mais comuns que digito na linha de comando do PowerShell.


3
É engraçado que ninguém tenha respondido essa resposta mais simples que você. :) #
21298 halr9000

15
Eu sou uma pessoa muito simples.
EBGreen

85
Este comando é a abreviação de Invoke-Item. O ponto depois pode ser qualquer caminho.
M. Dudley

Impressionante, resposta muito simples! Eu gosto disso.
Anthony Liriano 27/03

Portanto, o primeiro parâmetro padrão de iié explorer, o segundo parâmetro é path.
Timo

145

Você tem poucas opções:

  • O Powershell procura executáveis ​​no seu caminho, assim como o cmd.exe. Então você pode simplesmente digitar explorer no prompt do PowerShell. Usando esse método, você também pode transmitir argumentos de linha cmd (consulte http://support.microsoft.com/kb/314853 )
  • O cmdlet Invoke-Item fornece uma maneira de executar um arquivo executável ou abrir um arquivo (ou conjunto de arquivos) no Windows PowerShell. Alias : ii
  • use system.diagnostics.process

Exemplos:

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

5
Você também pode fazer: invoke item c: \ path \
x0n

Esta é a resposta mais bem formulada e mais informativa aqui, e também deve incluir as outras respostas aprovadas aqui, especialmente "ii".
Daved

iié um alias deInvoke-Item
Kolob Canyon 06/10

32

Use qualquer um destes:

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

Você pode aplicar qualquer um desses comandos no PowerShell.

Caso você queira abrir o explorer no prompt de comando, os dois últimos comandos não funcionam e os três primeiros funcionam bem.


23

Basta usar o Invoke-Itemcmdlet. Por exemplo, se você deseja abrir uma janela do explorer no diretório atual, pode:

Invoke-Item .

Um alias para isso é ii.
VivekDev 7/03/19


18

Me deparei com esta pergunta procurando uma maneira de abrir uma janela do Explorer no PowerShell e também selecionar um arquivo. Estou adicionando esta resposta caso outras pessoas a encontrem pelo mesmo motivo.

Para iniciar o Explorer e selecionar um arquivo, use Invoke-Expression:

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

Provavelmente existem outras maneiras de fazer isso, mas isso funcionou para mim.


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

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

Espero que isto ajude


1
Não sei por que isso está sendo rejeitado - não consigo votar por falta de elegância, mas ainda é uma boa (embora prolixo) resposta :) Você recebe meu UP.
Slipsec

1
Concordo. É muito mais código, mas permite alguma flexibilidade.
Mike Shepard

Quando uso esse código, ele abre o Explorer, mas não o diretório que eu passei como WorkingDirectory. Apenas abre a pasta Bibliotecas. A resposta que shovavnik enviou faz isso corretamente em uma única linha.
usar o seguinte código


2

Eu queria escrever isso como um comentário, mas não tenho 50 reputação.

Todas as respostas neste tópico são essencialmente para usar Invoke-Item ou usar explorer.exe diretamente; no entanto, isso não é completamente sinônimo de "abrir pasta contendo", portanto, em termos de abrir uma janela do Explorer como a pergunta indica, se quisermos aplicar a resposta a um arquivo específico, a pergunta ainda não foi realmente respondida.

por exemplo,

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

^ esses dois comandos resultariam na chamada do Notepad.exe ou do Firefox.exe nos dois arquivos, respectivamente, não em uma janela do explorer.exe em C: \ Users \ Foo \ (o diretório que contém).

Considerando que, se alguém estivesse emitindo esse comando do PowerShell, isso não seria grande coisa (menos digitando de qualquer maneira), se alguém estiver usando scripts e precisar "abrir pasta contendo" em uma variável, será uma questão de correspondência de string para extrair o diretório de o caminho completo para o arquivo.

Não existe um comando simples "Pasta aberta que contenha uma variável que possa ser substituída?

por exemplo,

$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"). Diretório
Dave_J

Uma alternativa que é essencialmente a mesma, mas mantém tudo em cmdlets do Powershell: ii (Caminho dividido "C: \ temp \ file.txt")
EBGreen

0

Essa é a única coisa que se encaixa nas minhas restrições exclusivas de querer que a pasta seja aberta como uma guia Quizo em qualquer janela existente do Explorer.

$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.