148 votes

Existe-t-il un raccourci de commande dans l'invite de commande de Windows pour accéder au répertoire personnel de l'utilisateur actuel, comme c'est le cas sous Linux ?

J'ai l'habitude d'utiliser

cd ~

pour aller directement dans mon répertoire personnel. Dans l'invite de commande de Windows, je dois faire

cd Users\username

pour y arriver. Existe-t-il un raccourci comme celui de Linux ? Ce serait bien si je pouvais y arriver en faisant

cd username

Est-ce que quelque chose comme cela est possible dans Windows Vista ?

6voto

DavidPostill Points 140654

Y a-t-il un raccourci pour C:\Users\<current user>\ ?

Il n'y a pas de raccourci direct.

Il existe plusieurs solutions différentes (voir ci-dessous).

  1. Utilisez une variable d'environnement avec cd ou cd /d

  2. Utilisez subst ou net use pour créer un mappage vers une autre lettre de lecteur.

  3. Installer cygwin et utiliser bash

  4. Utilisez powershell - powershell prend en charge ~

La dernière solution est probablement la plus simple si vous êtes prêt à utiliser powershell au lieu de cmd .


Solution 1 : Utilisez une variable d'environnement avec cd ou cd /d

Si vous voulez changer ce répertoire régulièrement, exécutez la commande suivante :

setx DOCS %USERPROFILE%

Ceci va définir de façon permanente la variable d'environnement DOCS mais pour pouvoir l'utiliser, vous devez d'abord créer un nouveau compte cmd Shell, alors la variable est définie et prête à être utilisée :

F:\test>echo %DOCS%
C:\Users\DavidPostill\

Pour changer de répertoire depuis n'importe quel endroit, utilisez la commande suivante :

cd /d %DOCS%

Si vous êtes déjà sur l'entraînement c: vous pouvez simplement utiliser :

cd %DOCS%

Créer un fichier batch ( docs.cmd ) et mettez-le quelque part dans votre PATH .

docs.cmd :

@echo off
cd /d %DOCS%

Vous pouvez alors simplement taper docs quel que soit votre emplacement actuel, et il vous conduira à C:\Users\<current user>


Solution 2 : Utilisez subst ou net use pour créer un mappage vers une autre lettre de lecteur.

Vous pouvez utiliser subst :

subst x: %USERPROFILE%

Et puis

x:

Malheureusement, les mappages de lecteurs ne persistent pas lors des redémarrages.

net use persistera à travers les redémarrages, par exemple :

net use x: "\\computerName\c$\pathName" /persistent:yes

Voir les réponses dans Comment rendre le mappage SUBST persistant à travers les redémarrages ? pour des instructions détaillées.


Solution 3 : Installer cygwin et utiliser bash

Vous pouvez envisager d'installer cygwin :

Cygwin l'est :

  • une large collection d'outils GNU et Open Source qui fournissent des fonctionnalités similaires à celles d'une distribution Linux sous Windows.

Une fois que vous avez installé cygwin, vous pouvez exécuter bash dans un terminal cygwin et définir la variable d'environnement bash HOME le cas échéant.

Les alternatives à cygwin incluent msys (MingW) :

MSYS est une collection d'utilitaires GNU tels que bash, make, gawk et grep pour permettre la construction d'applications et de programmes qui dépendent de la présence d'outils traditionnellement UNIX. Il est destiné à compléter MinGW et les déficiences de la cmd Shell.

Et Git pour Windows :

Git pour Windows fournit une émulation BASH utilisée pour exécuter Git depuis la ligne de commande. Les utilisateurs *NIX devraient se sentir comme chez eux, car l'émulation BASH se comporte exactement comme la commande "git" dans les environnements LINUX et UNIX.


Solution 4 : Utilisez powershell

Comme indiqué dans un commentaire sur une autre question par SBI powershell prend en charge ~ et vous pouvez juste taper :

cd ~

Autres lectures

  • Un index A-Z de la ligne de commande CMD de Windows - Une excellente référence pour tout ce qui concerne la ligne cmd de Windows.
  • cd - Change Directory - Sélectionnez un dossier (et un lecteur)
  • setx - SETX peut être utilisé pour définir les variables d'environnement de la machine (HKLM) ou de l'utilisateur actuellement connecté (HKCU).
  • subst - Remplacez une lettre de lecteur par un chemin d'accès réseau ou local.

3voto

joshuadfranklin Points 31

Je ne sais pas si c'est une fonctionnalité de notre login de travail script ou un défaut de Windows, mais je peux utiliser cd %HOMEPATH% pour y parvenir, où HOMEPATH est une variable d'environnement.

2voto

AlexD Points 198

Je pense que tout le monde n'a pas compris l'essentiel : le but de cd ~ est d'utiliser le moins de frappes possibles et non pas des pourcentages, des dollars ou des tildes maladroits... et Dieu nous préserve de "cd %HOMEPATH%" ou "cd %HOME%"...

Depuis longtemps, j'ai avec un C : \Tools\bats répertoire où je mets mon minimum optimisé en tapant script nommé.... cdd.bat..

Alors, pourquoi cdd.bat ? Pourquoi pas home.bat ou h.bat ? C'est simple : avec home ou h, il faut un petit mouvement supplémentaire de la main droite pour taper 'h', 'o', 'm' et il faut encore bouger la main gauche une fois pour taper 'e' pendant que la main droite attend pour taper 'enter' et, ce qui est aussi important, cela fait 5 frappes pour home, et seulement deux pour 'h' MAIS la main droite doit se déplacer un peu... ce que je vais négocier. Avec 'h', il y a un petit déplacement de l'ensemble de l'avant-bras droit pour appuyer sur 'h' puis 'enter'... ce que je vais également accepter.

Avec 'cdd', cependant, mes deux mains reposent déjà sur l'emplacement optimal du clavier, de sorte qu'il n'y a pas de mouvement supplémentaire de l'une ou l'autre. J'obtiens 4 frappes alors que les trois premières sont une succession rapide.

Il faut essayer d'être attentif au jour le jour pour en voir les avantages.

1voto

BillP3rd Points 6027

Si vous souhaitez que les invites de commande de tous les utilisateurs démarrent dans leur répertoire "personnel", créez la clé de registre suivante en tant que valeur de chaîne extensible (sans guillemets, bien sûr) :

HKLM\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

Si vous voulez seulement votre vous invite à le faire :

HKCU\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

Je prends l'habitude de garder un C:\Scripts dans lequel je conserve un autoexec.bat que j'invoque via cette clé.

1voto

THBBFT Points 107

Je me rends compte que c'est une question qui a été posée depuis longtemps, mais juste pour mémoire. Installer clink ce qui étend votre invite de commande de nombreuses façons. Oui, il est plus lourd que les solutions ci-dessus, mais il permet à la fenêtre de commande de se comporter beaucoup mieux.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X