Question Quel est l'équivalent de Linux "~" (tilde) dans Windows?


Sous Linux, on peut aller chez l'utilisateur en entrant le tilde (~) caractère après cd:

cd ~

Comment faire de même avec Windows?

A chaque fois, je dois taper:

cd C:\Document and Settings\freewind

C'est trop ennuyeux.


57
2017-09-07 12:28


origine


Pensez à utiliser cygwin? - Paul R
en fait, "~" est la valeur par défaut pour "cd" sous la plupart des shells Linux, donc juste "cd" suffirait pour aller à votre homedir
@Arnout: Voir stackoverflow.com/questions/998626/... - abatishchev
La réponse est simplement "cd ~" .. signifie que vous pouvez également utiliser la même commande dans Windows. Mais, vous ne devriez pas essayer cette commande dans CMD car son développement et son développement obsolètes sont abandonnés par Microsoft. Utilisez "Windows PowerShell" et la même commande fonctionnera sans problème. - Apple II
PowerShell est livré avec Win7 + - Isaac Dontje Lindell


Réponses:


cd /d "%HOMEDRIVE%%HOMEPATH%" le ferait - mais je ne sais pas si vous considérez cela comme une amélioration.

Vous pouvez également définir un alias pour la commande ci-dessus:

doskey cdhome=cd /d "%HOMEDRIVE%%HOMEPATH%"

Après cela, c'est simplement cdhome.


37
2017-09-07 12:29



@Freewind: Il faut aimer le shell Windows par défaut. - Jon
@abatishchev: Bonne question. Cette question sur SF semble indiquer que% USERPROFILE% est préférable. - Jon
Vous pouvez également utiliser cd ~ comme nom de macro, plutôt que cdhome. - jftuga
@abatishchev: les comptes Windows NT peuvent avoir un chemin "attaché" distinct du répertoire "profile". Le profil garde votre paramètres (Registre), les données d'application, etc. Le répertoire de base, par contre, est pour vos propres fichiers - lorsqu'un programme affiche la boîte de dialogue "Ouvrir / Enregistrer" pour la première fois, il démarrera dans le répertoire de base. (Windows 95/98 l'utilisait quelque peu différemment; ne peut pas se souvenir des détails.) Cela est utile dans les environnements Active Directory, pour stocker des fichiers sur un partage réseau mais en conservant le profil local. - grawity
@jftuga: ou même ~. - grawity


Vous pouvez utiliser cd /d %USERPROFILE% si vous utilisez cmd.

ou vous pouvez utiliser cd ~ si vous utilisez PowerShell.


56
2017-09-07 12:31



+1 mais aussi des guillemets autour de la variable (peut-être que c'est c:\documents and settings\..., les espaces le casseront sauf s'il est cité) - Jon
@Jon: cd est une exception. Comme il prend toujours un seul argument, la citation n'est pas nécessaire. (Sous Windows, les programmes et les composants intégrés doivent analyser eux-mêmes leur ligne de commande, le shell ne le fait pas.) Toujours indiquer les chemins est une bonne pratique, cependant. - grawity
@barlop: habituellement CommandLineToArgvW (); Les environnements d'exécution CLR / MinGW / Cygwin utilisent également leur propre équivalent automatiquement avant d'appeler main (). Certains programmes, cependant, ont des analyseurs entièrement écrits à partir de zéro, par exemple, cmd.exe lui-même et son farfelu /c. - grawity
@barlop: Pas si vous essayez d'utiliser des guillemets (ou redirection) dans le cadre d'une commande donnée. Est-ce /c "C:\foo bar\baz" "my file.txt" ou /c "\"C:\foo bar\baz\" \"my file.txt\"" ou /c ""C:\foo bar\baz" "my file.txt""? Ce qui est pire, c'est que l'analyse dépend si /s a été spécifié précédemment, la présence de caractères spéciaux, que l'exécutable soit nommé C:\foo bar\bazou juste C:\foo... - grawity
@TheLQ Un script batch est encore plus facile. Je peux obtenir le même résultat en tapant un seul caractère. Voir ma réponse ci-dessous pour une description. - weberc2


Une possibilité est d'utiliser le subst commande à partir d'une invite de commande:

subst z: C:\Document and Settings\freewind

Chaque fois que vous naviguez vers le lecteur Z:, vous regardez votre dossier utilisateur.

L'inconvénient est que vous devez l'exécuter chaque fois que vous vous connectez. J'ai utilisé un fichier de commandes et je l'ai simplement placé dans mon dossier de démarrage, mais il existe probablement des solutions plus élégantes.

L'avantage est que contrairement à un alias doskey, il fonctionne de manière universelle (explorateur Windows, boîte de dialogue Parcourir, etc.), pas seulement lors de la modification de répertoires à l'invite de commande. Il est particulièrement utile pour les anciens programmes avec d'anciennes boîtes de dialogue de navigation qui ont des lettres de lecteur au niveau le plus élevé, plutôt que "bureau".


12
2017-09-12 16:32



Vous pouvez mapper un lecteur et le faire automatiquement après la connexion. Pas besoin d'utiliser subst - phuclv
@ LưuVĩnhPhúc Ce n'est peut-être pas tout à fait logique, mais j'ai tendance à éviter les actions de partage de réseau Windows à moins que je ne devrais vraiment les utiliser. J'ai l'impression que la performance et la fiabilité sont ... imprévisibles? Bien sûr, si vous avez une alternative, et mieux, une manière de le faire, veuillez l’afficher dans sa propre réponse pour le bénéfice de tous :) - mo.


Tu peux le faire:

cd %homepath%

6
2017-09-07 12:36



Cela se cassera si vous êtes sur un lecteur différent - par ex. tu es sur E: et votre homedir est sur C: - Piskvor


Vous pouvez créer un fichier de commandes appelé ~.bat contenant

@echo off
cd /d %USERPROFILE%

Et l'ajouter à votre variable PATH (Démarrer -> [clic droit sur "Ordinateur"] -> Propriétés -> "Paramètres système avancés" [dans la colonne de gauche] -> "Variables d'environnement"

À partir de là, éditez simplement votre variable PATH pour inclure le dossier contenant votre ~.bat fichier. (Cela vous permet d'appeler votre script depuis n'importe où en utilisant uniquement le nom de fichier - pas le chemin absolu du fichier)

Assurez-vous également que votre PATHEXT variable d'environnement contient .BAT quelque part (cela vous permet de taper ~ au lieu de ~.bat).

Lorsque vous avez besoin de l'utiliser, entrez simplement ~ à l'invite de commande. Cette solution est persistante - vous ne devrez pas la configurer chaque fois que vous lancez un shell, et vous n’aurez pas besoin de pirater votre registre.


3
2018-01-16 21:03





Malheureusement, je ne suis pas au courant d'une solution parfaite, mais il existe quelques options de piratage:

Option 1: Définir ~ pour être un alias de commande avec doskey 

doskey ~=cd /d %USERPROFILE%

Cela vous permettra de taper simplement ~ et le faire chir à votre homedir.

C:\>~
C:\Users\a>

Évidemment, cela raccourcit le nombre de frappes sur la touche (même comparé à Linux), mais est moins robuste, car vous ne pouvez pas vraiment l'utiliser comme partie d'un autre chemin ou faire beaucoup plus que de simplement rentrer chez vous.

Option 2: Définir ~ comme variable

Une autre option, si vous voulez une option plus robuste, est de définir un var:

set ~="%USERPROFILE%"

mais en l'utilisant serait utilisé comme:

E:\>cd /d %~%
C:\Users\a>

Il peut également être injecté dans la plupart des chemins et ne vous limite pas simplement à rentrer chez vous.

Les deux options simultanément

En outre, vous pouvez implémenter les deux méthodes simultanément. Si vous avez le% autour, alors il va utiliser la variable - sinon il traitera ~ en tant que commande.

C:\>:: ECHO (display) THE VALUE OF %~%
C:\>echo %~%
C:\Users\a

C:\>:: ChDir to ~\DESKTOP
C:\>cd /d %~%\Desktop

C:\Users\a\Desktop>:: USE THE ~ COMMAND
C:\Users\a\Desktop>~

C:\Users\a>

Un autre conseil (un peu lié):

Cela est moins susceptible d’être acceptable sur une machine d’entreprise, du moins sur votre PC, pour économiser des frappes supplémentaires, ce n’est pas une mauvaise idée %USERPROFILE% dir un nom simple. Comme vous pouvez le voir dans mes exemples ci-dessus, mon répertoire utilisateur est C:\Users\a - J'avais toujours «aplocher» ou «adamp» et quand j'ai changé pour une seule lettre, c'était magique.


1
2018-05-27 06:22





Dans Powershell le %variable% la syntaxe ne fonctionne pas. Tu peux le faire :

cd $env:USERPROFILE

1
2018-05-27 10:08



Vous pouvez utiliser cd ~ dans PowerShell. - wjandrea


À l'aide de PowerShell, vous pouvez essayer la méthode suivante pour naviguer dans des répertoires depuis n'importe quel endroit, à condition de connaître votre nom d'utilisateur et de disposer des autorisations de répertoire de fichiers.

cd \..\Users\yourUserName\Documents
cd \..\Users\yourUserName\Downloads
cd \..\Users\yourUserName\Desktop
cd \..\Users\yourUserName\music

Voir l'exemple ci-dessous dans PowerShell (64 bits). Je l'ai testé sur un boîtier Windows 7 Pro 64 bits.

Linux Lilde equivalent on Windows 7 Pro 64 Bit


0
2018-04-13 18:06