jeudi 8 mai 2014

Ouvrir la console à partir d'un dossier spécifique


Ça fait longtemps que je n'avais pas fait d'article un peu plus "technique".
Alors, voilà que la fin de semaine passée j'ai eu à faire du développement sur ma machine Windows chez moi. J'ai eu le malheur de constater qu'une fonctionnalitée que j'aimais beaucoup sur ma machine Linux n'était pas présente : pouvoir ouvrir une console à partir d'un dossier et que celle-ci soit positionnée dans ce même dossier.
Alors je vous présente mon cheminement de recherche.

 

La méthode manuelle (et plate)

  • Copier le chemin complet du dossier
  • Appuyer sur les touches Windows+R
  • Écrire la commande cmd
  • Écrire dans la console la commande cd, puis coller le chemin complet du dossier

 

La méthode "cachée"

Après un peu de recherche, je me suis rendu compte que ce que je voulais était déjà inclus dans le système d'exploitation, mais que je ne savais pas comment le trouver. Ce que je ne savais pas, c'était que si on ouvrait le menu contextuel d'un dossier en appuyant sur MAJ en même temps, de nouvelles options s'ajoutaient au menu (dont l'option que je cherchait)
  • MAJ + Clique droit de souris
  • Cliquer sur l'option "Open command window here"

 

La méthode "cachée" améliorée

Bien que je puisse comprendre pourquoi Microsoft a voulu cacher cette option qui n'est pas nécessaire au commun des gens, je voulais trouver une façon de faire apparaître cette option sans avoir à appuyer sur MAJ. Après un peu d'investigation, j'ai découvert ma "citée d'or". Il suffit de supprimer trois petites valeurs dans le registre de Windows.
  • Supprimer la valeur "Extended" située dans ces clés de registre :
    [HKEY_CLASSES_ROOT\Drive\shell\cmd]
    [HKEY_CLASSES_ROOT\Directory\shell\cmd]
    [HKEY_CLASSES_ROOT\Directory\background\shell\cmd]
  • Redémarrer l'application Explorer.exe 
Voici un script pour exécuter ces commandes automatiquement : https://gist.github.com/EmeraldCoder/e93ac35dc943f5bb7d7a

 

La méthode PowerShell

Jusqu'ici tout est bien qui fini bien. Sauf si je préfére utiliser la PowerShell au lieu de la console ordinaire. La modification n'est pas très longue à faire, mais nous avons 2 choix.
   1. Modifier la commande de l'option "Open command window here"
   2. Créer une nouvelle option "Open PowerShell window here".
J'ai choisi la deuxième option car elle me laisse la possibilité de choisir entre les deux consoles à tout moment.
    • Créer la clé de registre [HKEY_CLASSES_ROOT\Drive\shell\PowerShell] et changer la valeur par défaut par : Open PowerShell window here
    • Créer la clé de registre [HKEY_CLASSES_ROOT\Drive\shell\PowerShell\command] et changer la valeur par défaut par :
      powershell.exe -NoExit -Command Set-Location -LiteralPath '%1'
    • Créer la clé de registre [HKEY_CLASSES_ROOT\Directory\shell\PowerShell] et changer la valeur par défaut par : Open PowerShell window here
    • Créer la clé de registre [HKEY_CLASSES_ROOT\Directory\shell\PowerShell\command] et changer la valeur par défaut par :
      powershell.exe -NoExit -Command Set-Location -LiteralPath '%1'
    • Créer la clé de registre [HKEY_CLASSES_ROOT\Directory\background\shell\PowerShell] et changer la valeur par défaut par : Open PowerShell window here
    • Créer la clé de registre [HKEY_CLASSES_ROOT\Directory\background\shell\PowerShell\command] et changer la valeur par défaut par :
      powershell.exe -NoExit -Command Set-Location -LiteralPath '%V'
    • Redémarrer l'application Explorer.exe
    Voici un script pour exécuter ces commandes automatiquement : https://gist.github.com/EmeraldCoder/088d9e4723ac1df12a70