web-dev-qa-db-fra.com

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

J'ai l'habitude d'utiliser

cd ~

entrer directement dans mon répertoire personnel. Dans l'invite de commande 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 ceci est possible dans Windows Vista?

98
classer

Vous pouvez toujours mettre un fichier .bat quelque part dans votre% PATH% qui change le chemin pour vous.

18
dertoni

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

Quelques autres variables utiles sont disponibles, telles que %OS% (Système d'exploitation) ou %WINDIR% (répertoire système Windows). Voir Wikipedia: Variables d'environnement pour une liste.


Notes :

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

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

144
sleske

Deux autres options pouvant ê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 ce ~ dans les chemins, mais en tapant "saute chez moi" rapidement en tapant ~ Enter est assez rapide.

20
Carl

J'ai créé un fichier .cmd dans 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 suffisamment proche pour moi.

La réponse de sleske est presque tout à fait juste, mais ça ne marche pas toujours.

Si votre répertoire de base se trouve sur un partage de réseau configuré en tant que lecteur mappé, exécutez ce qui suit, quel que soit le lecteur du répertoire actuel:

cd /D %HOMEDRIVE%%HOMEPATH%

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

6
Kenny Evitt

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

Il n'y a pas de raccourci direct.

Il existe deux 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. Installez cygwin et utilisez 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 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 pouvoir l'utiliser, vous devez commencer par créer un nouveau shell cmd, puis 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 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 placez-le quelque part dans votre PATH.

docs.cmd:

@echo off
cd /d %DOCS%

Vous pouvez alors simplement taper docs indépendamment de votre emplacement actuel et cela vous mènera à 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 alors

x:

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

Net Use persistera après les redémarrages, par exemple:

Net Use x: "\\computerName\c$\pathName" /persistent:yes

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


Solution 3: Installez cygwin et utilisez bash

Vous pourriez envisager d'installer cygwin :

Cygwin c'est:

  • une vaste collection d'outils GNU et Open Source offrant 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 selon vos besoins.

Les alternatives à cygwin incluent msys (MingW) :

MSYS est un ensemble d'utilitaires GNU tels que bash, make, gawk et grep permettant de créer des applications et des programmes dépendant d'outils UNIX traditionnels. Il est destiné à compléter MinGW et les faiblesses de la cmd Shell.

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 de NIX doivent se sentir 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 de SBI powershell prend en charge ~ et vous pouvez simplement taper:

cd ~

Lectures complémentaires

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

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

3
Rob Cowell

Si vous voulez que toutes les invites de commandes des utilisateurs commencent dans leur répertoire "home", créez la clé de registre suivante sous la forme d'une valeur de chaîne extensible (sans guillemets, bien sûr):

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

Si vous voulez seulement votre commande vous invite à le faire:

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

Je prends l'habitude de conserver un dossier c:\Scripts dans lequel je conserve un fichier de commandes de type "autoexec" que j'invoque via cette clé.

1
BillP3rd

Je me rends compte que cette question est posée depuis longtemps, mais pour le compte rendu. Installez clink , ceci étend votre invite de commande de tant de façons. Oui, il est plus lourd que les solutions ci-dessus, mais la fenêtre cmd se comporte tellement mieux.

1
THBBFT

Windows est vraiment devenu "Tout à propos de l'interface graphique", de sorte que dans votre cas, j'obtiendrais simplement les outils que vous souhaitez au lieu d'essayer de "plier" le système à votre guise ... Les outils MinGW constituent une excellente petite collection de les outils GNU les plus largement utilisés ... Je le recommande vivement si vous êtes un fan de Nix sur Win ...

http://www.mingw.org/wiki/MSYS

0
Eddie B

J'ai utilisé un meilleur terminal ( cmder ) à cette fin. Il a construit dans des alias et son très facile à utiliser. Il suffit de lire la documentation sur les alias ici .

0
Don Camillo