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

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

Des indices?

Utilisation:

ii . 

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

Vous avez quelques options:

  • Powershell recherche les fichiers exécutables dans votre chemin, comme le fait cmd.exe. Donc, vous pouvez simplement taper explorer à l’invite Powershell. À l’aide de cette méthode, vous pouvez également transmettre des arguments de ligne de commande (voir http://support.microsoft.com/kb/314853 ).
  • L’applet de commande Invoke-Item permet d’exécuter un fichier exécutable ou d’ouvrir un fichier (ou un ensemble de fichiers) à partir de Windows PowerShell. Alias: ii
  • utiliser system.diagnostics.process

Exemples:

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

Utilisez simplement l’applet de commande invoke-item. Par exemple, si vous souhaitez ouvrir une fenêtre d’explorateur sur le répertoire en cours, vous pouvez:

 invoke-item . 
 explorer . 

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

Pour lancer Explorer et sélectionner un fichier, utilisez Invoke-Expression :

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

Il y a probablement d’autres moyens de le faire, mais cela a fonctionné pour moi.

 $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

Utilisez l’un de ces:

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

Vous pouvez appliquer l’une de ces commandes dans PowerShell.

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

Lancer explorer.exe

Commande simple ligne simple

Utilisez cette ligne:

 invoke-item c:\path 

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

Toutes les réponses à ce sujet consistent essentiellement à utiliser Invoke-Item ou à utiliser directement explorer.exe. Cependant, ceci n’est pas complètement synonyme de “ouvrir contenant un dossier”, donc en termes d’ouverture d’une fenêtre Explorateur comme le dit la question, si nous voulions appliquer la réponse à un fichier particulier, la question n’a toujours pas été résolue.

par exemple,

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

^ Ces deux commandes entraîneraient l’invocation de Notepad.exe ou de Firefox.exe sur les deux fichiers, et non une fenêtre explorer.exe sur C: \ Users \ Foo \ (le répertoire contenant).

Considérant que si on émettait cette commande à partir de powershell, ce ne serait pas grave (moins de frappe de toute façon), si l’on est en train de script et doit “ouvrir contenant le dossier” sur une variable, il devient une correspondance de chaîne pour extraire le répertoire de le chemin d’access complet au fichier.

N’y a-t-il pas de commande simple “Open-Containing-Folder” pour 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 

C’est la seule chose qui correspond à mes contraintes uniques

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