Question Existe-t-il une commande de raccourci dans l'invite de commande Windows pour accéder au répertoire de base de l'utilisateur actuel, comme il existe sous Linux?


Je suis habitué à utiliser

cd ~

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

cd Users\username

pour y arriver. Y a-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?


89
2017-07-28 09:47


origine


Dans Unix, le tilde n'est pas nécessaire. cd sans aucun argument changera dans votre répertoire personnel. - coneslayer
il y avait une question comme celle-ci ici sur su, ne peut pas le trouver. - akira
@coneslayer je sais mais pour déplacer un fichier d'un répertoire à un autre, vous utilisez le tilde. - classer


Réponses:


Vous pouvez toujours placer un fichier .bat quelque part dans votre% PATH% qui effectue le changement de chemin pour vous.


17
2017-07-28 10:47





Oui, vous pouvez utiliser %HOMEPATH%, qui est le chemin complet du répertoire de base de l'utilisateur.

Il existe plusieurs autres variables utiles, telles que %OS% (Système d'exploitation) ou %WINDIR% (Répertoire système Windows). Voir wikipedia: valeurs environnementales pour une liste.


Remarques:

En fait, les choses sont un peu compliquées (comme d'habitude). %HOMEPATH% ne contient que le chemin, sans la lettre de lecteur, donc ne fonctionnera pas pour cdà partir d'un lecteur différent. Vous pouvez aussi utiliser %USERPROFILE%, lequel Est-ce que contient la lettre de lecteur, et est généralement le même répertoire que %HOMEPATH%.

Les valeurs de ces variables, et celle qui vous convient le mieux, dépendent de la version de Windows et des modifications apportées par un administrateur, car leurs valeurs peuvent être différentes (voir par exemple la question Différence entre profil et parcours ).


130
2017-07-28 10:12



C'est la réponse la plus correcte, à mon avis, car elle ne repose pas sur des chemins codés en dur et sur des liens de systèmes de fichiers farfelus entre eux. - Ed Orsi
C'est la bonne réponse. - Frederik Krautwald
Cela m'a sauvé la vie! Après avoir examiné de nombreuses autres réponses à des questions différentes. Encore! Cela a fonctionné pour moi et devrait être marqué comme la réponse à cette question. - Patricia
@MissLucy: Je suis content que cela vous ait aidé. En ce qui concerne l'acceptation d'une réponse: cela revient à l'OP de décider. Vous pouvez ajouter un commentaire à la question pour les alerter. - sleske
utilisez plutôt% USERPROFILE%. - JJS


Deux autres options peuvent être ajoutées à un script et exécutées automatiquement de la même manière que la réponse de BillP3rd.

Ce sont deux autres personnages mais ...

SET ~=%HOMEPATH%    
CD %~%

ou...

CD %~%\Desktop

Ou...

doskey ~=cd %homepath%
~

Bien sûr, vous ne pouvez pas utiliser cette ~ dans les chemins mais comme un rapide "sauter à mon domicile" taper ~  Entrer est assez rapide.


19
2018-01-18 18:26





J'ai créé un fichier .cmd sur un répertoire de mon chemin et je l'ai nommé "cd ~ .cmd". Son contenu est:

@cd %HOMEPATH%

Je peux donc taper "cd ~" de n'importe où pour accéder à mon répertoire personnel. Pas le même que "cd ~" (notez l'espace manquant) mais assez proche pour moi.


8
2018-05-07 18:33



La réponse la plus intelligente En combinant le vôtre avec cette réponse de Kenny Evitt donne la meilleure solution. - Sнаđошƒаӽ


réponse de sleske est presque exact, mais ça ne marche pas toujours.

Si votre répertoire de base se trouve sur une configuration de partage réseau en tant que lecteur mappé, exécutez les opérations suivantes, quel que soit le lecteur du répertoire en cours:

cd /D %HOMEDRIVE%%HOMEPATH%

le /D commutateur est nécessaire pour permettre cd changer de lecteur.


6
2017-07-31 18:39



Que diriez-vous de cd / d% homedrive %% homepath% comme un one-liner? - james


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. Utiliser une variable d'environnement avec cd ou cd /d

  2. Utilisation subst ou net use à la création d'un mappage vers une autre lettre de lecteur.

  3. Installer cygwin et utilise bash

  4. Utilisation 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 souhaitez modifier ce répertoire régulièrement, exécutez la commande suivante:

setx DOCS %USERPROFILE%

Cela définira de manière permanente la variable d'environnement DOCS, mais pour l'utiliser, vous devez d'abord commencer une nouvelle cmdshell, alors la variable est définie et prête à l'emploi:

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

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

cd /d %DOCS%

Si vous êtes déjà sur le lecteur c: vous pouvez simplement utiliser:

cd %DOCS%

Créez un fichier de commandes (docs.cmd) et le mettre quelque part dans votre PATH.

docs.cmd:

@echo off
cd /d %DOCS%

Vous pouvez alors simplement taper docs indépendamment de votre position actuelle et il vous mènera à C:\Users\<current user>


Solution 2: utilisation subst ou net use à la création d'un mappage vers une autre lettre de lecteur.

Vous pouvez utiliser subst:

subst x: %USERPROFILE%

Et alors

x:

Malheureusement, les mappages de lecteurs ne persistent pas après les redémarrages.

net use persistera lors des redémarrages, par exemple:

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

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


Solution 3: installation cygwin et utilise bash

Vous pourriez envisager d'installer cygwin:

Cygwin est:

  • une vaste collection d'outils GNU et Open Source offrant des fonctionnalités similaires à 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 selon le cas.

Les alternatives à cygwin incluent msys (MingW):

MSYS est un ensemble d'utilitaires GNU tels que bash, make, gawk et grep pour permettre la création d'applications et de programmes qui dépendent des outils UNIX traditionnels. Il est destiné à compléter MinGW et les lacunes du shell cmd.

Et Git pour Windows:

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


Solution 4: utilisation powershell

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

cd ~

Lectures complémentaires

  • Un index A-Z de la ligne de commande Windows CMD - Une excellente référence pour tout ce qui concerne la ligne Windows cmd.
  • CD - Changer de répertoire - Sélectionnez un dossier (et un lecteur)
  • setx - Définissez les variables d'environnement de manière permanente, SETX peut être utilisé pour définir des variables d'environnement pour la machine (HKLM) ou pour l'utilisateur actuellement connecté (HKCU).
  • subst - Remplacez une lettre de lecteur pour un chemin réseau ou local.

5
2018-03-04 12:16



Si sur Powershell il y a deux manières supplémentaires: cd $HOME et cd $env:HOMEPATH - Dirk Thannhäuser


Ne sais pas si c'est une fonctionnalité de notre script de connexion de travail ou une fenêtre par défaut, mais je peux utiliser cd% HOMEPATH% pour y parvenir, où HOMEPATH est une variable d'environnement.


3
2017-07-28 10:01



Je vois. Il faut encore beaucoup d'écrire% HOMEPATH%. Aussi, vous ne pouvez pas le compléter automatiquement. Est-il possible que mon nom d'utilisateur soit égal à% HOMEPATH% en créant une nouvelle commande dans cmd.exe? - classer