Est-il possible d'ouvrir une fenêtre de l'Explorateur Windows à partir de PowerShell?

304

Je suis sûr que cela doit être possible, mais je ne sais pas comment le faire.

Des indices?

Lachmania
la source

Réponses:

666

Utilisation:

ii .

ce qui est court pour

Invoke-Item .

C'est l'une des choses les plus courantes que je tape sur la ligne de commande PowerShell.

EBGreen
la source
3
C'est drôle que personne n'ait répondu à cette réponse la plus simple à part vous. :)
halr9000
15
Je suis une personne très simple.
EBGreen
85
Cette commande est l'abréviation de Invoke-Item. Le point après peut être n'importe quel chemin.
M. Dudley
Réponse impressionnante et très simple! Je l'aime.
Anthony Liriano
Le premier paramètre par défaut iiest donc explorer, le deuxième paramètre est le chemin.
Timo
145

Vous avez quelques options:

  • Powershell recherche les exécutables dans votre chemin, tout comme le fait cmd.exe. Vous pouvez donc simplement taper explorer sur l'invite PowerShell. En utilisant cette méthode, vous pouvez également passer des arguments de ligne de commande (voir http://support.microsoft.com/kb/314853 )
  • L' applet de commande Invoke-Item fournit un moyen d'exécuter un fichier exécutable ou d'ouvrir un fichier (ou un ensemble de fichiers) à partir de Windows PowerShell. Alias : ii
  • utilisez system.diagnostics.process

Exemples:

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")
codeape
la source
5
Vous pouvez également faire: invoke-item c: \ path \
x0n
C'est la réponse la mieux formulée et la plus informative ici, et devrait également inclure les autres réponses votées ici, en particulier "ii".
DaveD
iiest un alias deInvoke-Item
Kolob Canyon
32

Utilisez l'un de ces éléments:

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

Vous pouvez appliquer n'importe laquelle de ces commandes dans PowerShell.

Au cas où vous voudriez ouvrir l'explorateur à partir de l'invite de commande, les deux dernières commandes ne fonctionnent pas et les trois premières fonctionnent correctement.

20B2
la source
23

Utilisez simplement l' Invoke-Itemapplet de commande. Par exemple, si vous souhaitez ouvrir une fenêtre d'exploration sur le répertoire courant, vous pouvez faire:

Invoke-Item .
tomasr
la source
Un alias pour cela est ii.
VivekDev
20
explorer .
Daniel Kreiseder
la source
C'est ce que j'utilise depuis des années, mais explorersemble récemment être hors de mon chemin
DaveD
18

Je suis tombé sur cette question à la recherche d'un moyen d'ouvrir une fenêtre Explorer à partir de PowerShell et également de sélectionner un fichier. J'ajoute cette réponse au cas où d'autres la rencontreraient pour la même raison.

Pour lancer l'Explorateur et sélectionner un fichier, utilisez Invoke-Expression:

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

Il y a probablement d'autres façons de le faire, mais cela a fonctionné pour moi.

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

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

J'espère que cela t'aides

Alex
la source
1
Je ne sais pas pourquoi cela est rejeté - je peux voir que je ne vote pas pour le manque d'élégance, mais c'est toujours une bonne réponse (bien que verbeuse) :) Vous obtenez mon UP.
slipsec
1
Je suis d'accord. C'est beaucoup plus de code, mais cela permet une certaine flexibilité.
Mike Shepard
Lorsque j'utilise ce code, il ouvre l'Explorateur, mais pas le répertoire que j'ai transmis en tant que WorkingDirectory. Il ouvre simplement le dossier Bibliothèques. La réponse soumise par shovavnik le fait correctement sur une seule ligne.
Phoenix14830
4
start explorer.exe 

Commande simple sur une seule ligne

powershelluser
la source
2

Je voulais écrire ceci comme un commentaire mais je n'ai pas 50 points de réputation.

Toutes les réponses dans ce fil sont essentiellement d'utiliser Invoke-Item ou d'utiliser explorer.exe directement; cependant, ce n'est pas complètement synonyme de "dossier contenant ouvert", donc en termes d'ouverture d'une fenêtre Explorer comme l'indique la question, si nous voulions appliquer la réponse à un fichier particulier, la question n'a toujours pas vraiment été répondue.

par exemple,

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

^ ces deux commandes entraîneraient l'appel Notepad.exe ou Firefox.exe sur les deux fichiers respectivement, pas une fenêtre explorer.exe sur C: \ Users \ Foo \ (le répertoire contenant).

Alors que si l'on émettait cette commande à partir de powershell, ce ne serait pas grave (moins en tapant quand même), si l'on écrit un script et doit "ouvrir le dossier contenant" sur une variable, cela devient une question de correspondance de chaîne pour extraire le répertoire de le chemin d'accès complet au fichier.

N'y a-t-il pas de simple commande "Open-Containing-Folder" telle qu'une variable puisse être substituée?

par exemple,

$foo = "C:\Users\Foo\foo.txt"    
[some code] $fooPath
# opens C:\Users\Foo\ and not the default program for .txt file extension
T Sandwich
la source
2
Invoke-Item ([io.fileinfo] "C: \ temp \ file.txt"). Répertoire
Dave_J
Une alternative qui est essentiellement la même mais qui conserve tout dans les applets de commande Powershell: ii (Split-Path "C: \ temp \ file.txt")
EBGreen
0

C'est la seule chose qui correspond à mes contraintes uniques de vouloir que le dossier s'ouvre en tant qu'onglet Quizo dans n'importe quelle fenêtre de l'Explorateur existante.

$objShell = New-Object -ComObject "Shell.Application"
$objShell.Explore("path")
Beej
la source