65

В Linux мы можем перейти к пользователю домой, введя символ тильды (~) после cd:

cd ~

Как сделать то же самое в Windows?

Каждый раз мне нужно набрать:

cd C:\Document and Settings\freewind

Это слишком скучно.

8 ответов8

60

Вы можете использовать cd /d %USERPROFILE% если вы используете cmd.

или вы можете использовать cd ~ если вы используете PowerShell.

39

cd /d "%HOMEDRIVE%%HOMEPATH%" сделает это, но я не уверен, что вы считаете это улучшением.

Вы также можете определить псевдоним для вышеуказанной команды:

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

После этого это просто cdhome .

12

Одна возможность - использовать команду subst из командной строки:

subst z: C:\Document and Settings\freewind

Каждый раз, когда вы переходите на диск Z:, вы будете просматривать свою пользовательскую папку.

Недостатком является то, что вам нужно запускать его каждый раз, когда вы входите в систему. Я использовал командный файл и просто поместил его в папку автозагрузки, но, возможно, есть более элегантные решения для этого.

Преимущество состоит в том, что в отличие от псевдонима doskey, он работает универсально (проводник Windows, диалог просмотра и т.д.), А не только при смене каталогов в командной строке. Это особенно полезно для старых программ со старыми диалоговыми окнами просмотра, которые имеют буквы дисков на самом верхнем уровне, а не "рабочий стол".

6

Вы можете сделать это:

cd %homepath%
4

Вы можете создать пакетный файл с именем ~.bat содержащий

@echo off
cd /d %USERPROFILE%

И добавьте его в переменную PATH (Пуск -> [щелкните правой кнопкой мыши "Компьютер"] -> Свойства -> "Дополнительные параметры системы" [в левом столбце] -> "Переменные среды")

Оттуда просто отредактируйте переменную PATH, включив в нее папку, содержащую файл ~.bat . (Это позволяет вам вызывать ваш скрипт из любого места, используя только имя файла, а не абсолютный путь к файлу)

Также убедитесь, что ваша переменная окружения PATHEXT содержит .BAT где-то (это позволяет вам печатать ~ вместо ~.bat).

Когда вам нужно его использовать, просто введите ~ в командной строке. Это решение является постоянным - вам не придется настраивать его каждый раз, когда вы запускаете оболочку, и вам не нужно будет взламывать реестр.

2

К сожалению, я не знаю идеального решения, но есть несколько хакерских вариантов:

Вариант 1: установите ~ как псевдоним команды с doskey

doskey ~=cd /d %USERPROFILE%

Это позволит вам просто набрать ~ и передать его chdir вашему homedir.

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

Очевидно, это сокращает количество нажатий клавиш, чтобы вернуться домой (даже по сравнению с Linux), но менее надежно, поскольку вы не можете использовать его как часть другого пути или делать с ним что-то большее, чем просто cd'ing home.

Вариант 2: установите ~ как переменную

Другой вариант, если вы хотите более надежный вариант - установить переменную:

set ~="%USERPROFILE%"

но используя это будет использоваться как:

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

Он также может быть введен в большинство путей и не ограничивает вас просто cd'ing home.

Оба варианта одновременно

Также вы можете реализовать оба метода одновременно. Если у вас есть% вокруг него, то он будет использовать переменную - в противном случае он будет обрабатывать ~ как команду.

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>

Еще один совет (вроде как):

С меньшей вероятностью это будет приемлемо на корпоративной машине, по крайней мере, на вашем домашнем ПК, для сохранения дополнительных нажатий клавиш; неплохая идея сделать ваш %USERPROFILE% dir простым именем. Как вы можете видеть из моих примеров выше, мой пользователь dir - это C:\Users\a - у меня всегда было «aplocher» или «adamp», и когда я менял одну букву, это было волшебно.

1

В Powershell синтаксис %variable% не работает. Вы можете сделать это :

cd $env:USERPROFILE
0

Используя PowerShell, вы можете использовать следующий метод для перемещения по каталогам из любой точки мира, если вы знаете свое имя пользователя и имеете права доступа к каталогу файлов.

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

Смотрите пример ниже в PowerShell (64 бит). Я проверял это на Windows 7 Pro 64-битной коробке.

Linux Lilde эквивалент на Windows 7 Pro 64 бит

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .