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 c'est le cas sous Linux?

105

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?

classeur
la source
7
Sous Unix, le tilde n’est pas nécessaire. cdsans 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
1
@coneslayer je sais mais pour déplacer un fichier d'un répertoire à un autre, utilisez le tilde.
classeur
Aussi simple quecd %userprofile%
subtleseeker
Vous pouvez utiliser Windows Power Shell (sous Win XP et ultérieur), ce qui vous permet d’utiliser ~ pour le répertoire de base. Voir aussi ----> stackoverflow.com/questions/9228950/…
franz1

Réponses:

20

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

Dertoni
la source
154

Oui, vous pouvez utiliser %HOMEPATH%le chemin d'accès 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 cdun lecteur différent. Vous pouvez également utiliser %USERPROFILE%, qui ne contient la lettre de lecteur, et est généralement le 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 le profil et le chemin de base ).

sleske
la source
5
À mon avis, c’est la réponse la plus correcte car elle ne repose pas sur des chemins codés en dur ni sur des liens loufoques entre systèmes de fichiers.
Ed Orsi
3
C'est la bonne réponse.
Frederik Krautwald
Cela m'a sauvé la vie! Après avoir examiné beaucoup d'autres réponses de différentes questions. Encore! Cela a fonctionné pour moi et devrait être marqué comme la réponse à cette question.
Patricia
@MissLucy: Je suis heureuse que cela vous ait aidé. Quant à l'acceptation d'une réponse: il appartient au PO de décider. Vous pouvez ajouter un commentaire à la question pour les alerter.
Sleske
utilisez% USERPROFILE% à la place.
JJS
22

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 ceci ~dans les chemins, mais il ~ Enterest assez rapide de taper un "saut à mon répertoire personnel" .

Carl
la source
1
Tu te fous de moi avec le truc doskey ??? J'ai maintenant un raccourci vers un dossier dans lequel je me sens comme un cd. Cela devrait être la réponse n ° 1.
Andrew
9

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 assez proche pour moi.

Jaime de los Hoyos M.
la source
2
Réponse la plus intelligente. En combinant la vôtre avec cette réponse de Kenny Evitt, vous obtenez la meilleure solution.
Sна16ошƒа
7

La réponse de sleske est presque exacte, mais cela ne fonctionne pas toujours.

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

cd /D %HOMEDRIVE%%HOMEPATH%

Le /Dcommutateur est nécessaire pour permettre cdde changer de lecteur.

Kenny Evitt
la source
5

Y a-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. Utiliser une variable d'environnement avec cdoucd /d

  2. Utilisez substou net usepour créer un mappage vers une autre lettre de lecteur.

  3. Installer cygwinet utiliserbash

  4. Utilisation powershell- supports PowerShell~

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


Solution 1: utilisez une variable d’environnement avec cdoucd /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 commencer par créer un nouveau cmdshell, 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à en route, 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%

Il vous suffit ensuite de taper docsquelle que soit votre position actuelle et cela vous mènera àC:\Users\<current user>


Solution 2: Utilisez substou net usepour créer un mappage vers une autre lettre de lecteur.

Vous pouvez utiliser subst:

subst x: %USERPROFILE%

Puis

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 après les redémarrages? pour des instructions détaillées.


Solution 3: Installer cygwinet utiliserbash

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 l’utiliser bashdans un terminal et définir la variable d’environnement bash HOMEselon vos besoins.

Les alternatives à cygwin incluent msys (MingW) :

MSYS est une collection d'utilitaires GNU tels que bash, make, gawk et grep, qui permettent de créer des applications et des programmes dépendant d'outils UNIX traditionnels. Il est destiné à compléter MinGW et les carences de la coquille 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 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: utiliser 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 AZ de la ligne de commande Windows CMD - Une excellente référence pour tout ce qui concerne la ligne de commande cmd de Windows.
  • cd - Changer de répertoire - Sélectionner 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.
DavidPostill
la source
Si sur Powershell, il y a deux autres moyens: cd $HOMEetcd $env:HOMEPATH
Dirk Thannhäuser,
3

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

Rob Cowell
la source
Je vois. Il faut encore beaucoup pour écrire% HOMEPATH%. De plus, vous ne pouvez pas le compléter automatiquement. Existe-t-il un moyen de rendre mon nom d'utilisateur égal à% HOMEPATH% en créant une nouvelle commande dans cmd.exe?
classeur
1

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

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

Si vous voulez que votre invite de commande le fasse:

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

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

BillP3rd
la source
Attention, cela va casser bower et npm (et Visual Studio) ...
Quandary
1

Je me rends compte que cette question est posée depuis longtemps, mais pour le compte rendu. Installer clink, cela é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.

THBBFT
la source
clink == puissant édition de ligne de commande de style Bash pour cmd.exe
suspectus
Oui, et l’essentiel est que ~ se résout dans le répertoire User \ {user}.
THBBFT
0

Windows est vraiment devenu "Tout à propos de l'interface graphique", de sorte que dans votre cas, j'obtiendrais simplement les outils dont vous avez besoin 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

Eddie B
la source
0

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 .

Don Camillo
la source