web-dev-qa-db-fra.com

Comment ouvrir une fenêtre Explorateur dans un répertoire donné à partir de cmd.exe?

Je vois comment lancer beaucoup d'autres programmes à partir d'un fichier batch, mais je ne trouve pas de commande comme open sur Mac OS X. outil existe sur Windows? Powershell ou un appel d'API Windows à partir d'un exécutable fonctionnerait également.

23
Robert Karl

Dans Windows, vous pouvez ouvrir l'Explorateur avec la commande suivante:

C:\Users\Leniel>start %windir%\Explorer.exe

Si vous souhaitez qu'il ouvre un dossier spécifique, procédez comme suit:

C:\Users\Leniel>start %windir%\Explorer.exe "C:\Users\Leniel\Desktop"
26
Leniel Maccaferri

L'équivalent direct de open d'OS X est start dans cmd.

start foo.txt

lancerait le Bloc-notes (ou tout autre éditeur de texte que vous utilisez),

start http://example.com

lancerait votre navigateur,

start \someDirectory

lancera Explorer, etc.

Il faut faire attention avec les arguments entre guillemets, car start interprétera le premier argument entre guillemets comme le titre de la fenêtre à utiliser, donc quelque chose comme

start "C:\Users\Me\Folder with spaces\somedocument.docx"

ne fonctionnera pas comme prévu. Au lieu de cela, ajoutez un argument vide entre guillemets dans ce cas:

start "" "C:\Users\Me\Folder with spaces\somedocument.docx"

Notez que start n'est pas un programme séparé mais un shell intégré. Donc, pour l'invoquer à partir d'un programme externe, vous devez utiliser quelque chose comme

cmd /c start ...

L'équivalent dans PowerShell est soit Start-Process ou Invoke-Item. Ce dernier est probablement mieux adapté à cette tâche.

Invoke-Item foo.txt  # launches your text editor with foo.txt
Invoke-Item .        # starts Explorer in the current directory

Quant à l'API Windows, vous recherchez ShellExecute avec le verbe open.

17
Joey