Есть ли в командной строке Windows команда быстрого доступа к домашнему каталогу текущего пользователя, как в Linux?

105

Я привык к использованию

cd ~

чтобы попасть прямо в мой домашний каталог. В командной строке Windows я должен сделать

cd Users\username

попасть туда. Есть ли ярлык как у Linux? Было бы неплохо, если бы я мог попасть туда, делая

cd username

Возможно ли что-то подобное в Windows Vista?

классерским
источник
7
В Unix нет необходимости в тильде. cdбез аргументов изменится в ваш домашний каталог.
Coneslayer
здесь был такой вопрос на Су, не могу найти его.
Акира
1
@coneslayer Я знаю, но чтобы переместить файл из одного каталога в другой, вы используете тильду.
Класс
Столь же просто, какcd %userprofile%
искатель искателей
Вы можете использовать Windows Power Shell (в Win XP и более поздних версиях), который позволяет использовать ~ для домашнего каталога. Смотрите также ----> stackoverflow.com/questions/9228950/…
franz1

Ответы:

20

Вы всегда можете поместить .bat-файл где-нибудь в вашем% PATH%, который изменяет путь для вас.

dertoni
источник
154

Да, вы можете использовать %HOMEPATH%полный путь к домашнему каталогу пользователя.

Есть довольно много других полезных переменных, таких как %OS%(Операционная система) или %WINDIR%(системный каталог Windows). См. Wikipedia: Переменные среды для списка.


Примечания :

На самом деле, все немного сложнее (как обычно). %HOMEPATH%содержит только путь, без буквы диска, поэтому не будет работать cdс другого диска. Вы также можете использовать %USERPROFILE%, который делает содержать букву диска, и, как правило , в этом же каталоге %HOMEPATH%.

Значения этих переменных и то, какая из них вам подходит, будут зависеть от версии Windows и любых изменений, внесенных администратором, поскольку их значения могут отличаться (см., Например, вопрос « Разница между профилем и домашним путем» ).

sleske
источник
5
Это самый правильный ответ, на мой взгляд, потому что он не опирается на жестко заданные пути и любые дурацкие ссылки на файловую систему, которые могут быть между ними.
Эд Орси
3
Это правильный ответ.
Фредерик Краутвальд
Это спасло мне жизнь! Посмотрев на множество других ответов на разные вопросы. Очередной раз! Это сработало для меня и должно быть отмечено как ответ на этот вопрос.
Патриция
@MissLucy: я рад, что это помогло тебе. Что касается принятия ответа: это зависит от ФП, чтобы решить. Вы можете добавить комментарий к вопросу, чтобы предупредить их.
Слёске
используйте вместо этого% USERPROFILE%.
JJS
22

Две другие опции, которые могут быть добавлены в скрипт и автоматически выполнены аналогично ответу BillP3rd.

Это еще два персонажа, но ...

SET ~=%HOMEPATH%    
CD %~%

или же...

CD %~%\Desktop

Или же...

doskey ~=cd %homepath%
~

Конечно, вы не можете использовать это ~в путях, но как быстрая «прыжок в мою домашнюю директорию» печатать ~ Enterдовольно быстро.

деревенщина
источник
1
Ты издеваешься надо мной с доски? Теперь у меня есть один ярлык на любую папку, в которую я чувствую себя, как на CD. Это должен быть ответ № 1.
Андрей
9

Я создал файл .cmd в каталоге на моем пути и назвал его «cd ~ .cmd». Его содержимое:

@cd %HOMEPATH%

Таким образом, я могу набрать «cd ~» из любого места, чтобы попасть в мой домашний каталог. Не то же самое, что "cd ~" (обратите внимание на отсутствующее место), но достаточно близко для меня.

Хайме де лос Ойос М.
источник
2
Самый умный ответ. Сочетание твоего с этим ответом Кенни Эвитта дает лучшее решение.
Снаđошƒаӽ
7

Ответ sleske в почти совершенно верно, но это не всегда работает.

Если ваш домашний каталог находится в сетевой папке, настроенной как подключенный диск, запустите следующее независимо от диска текущего каталога:

cd /D %HOMEDRIVE%%HOMEPATH%

/DПереключатель необходимо , чтобы cdизменить диски.

Кенни Эвитт
источник
5

Есть ли ярлык для C:\Users\<current user>\?

Там нет прямого ярлыка.

Есть несколько разных решений (см. Ниже).

  1. Используйте переменную окружения вместе с cdилиcd /d

  2. Используйте substили net useдля создания сопоставления с другой буквой диска.

  3. Установить cygwinи использоватьbash

  4. Использование powershell- поддержка powershell~

Последнее решение, вероятно, самое простое, если вы готовы использовать powershellвместо cmd.


Решение 1. Используйте переменную среды вместе с cdилиcd /d

Если вы хотите регулярно переходить в этот каталог, выполните следующую команду:

setx DOCS %USERPROFILE%

Это навсегда установит переменную окружения DOCS, но чтобы использовать ее, вам нужно сначала запустить новую cmdоболочку, а затем переменная определена и готова к использованию:

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

Чтобы изменить каталог из любого места, используйте следующую команду:

cd /d %DOCS%

Если вы уже находитесь на диске, c:вы можете просто использовать:

cd %DOCS%

Создайте командный файл ( docs.cmd) и поместите его где-нибудь в свой PATH.

docs.cmd:

@echo off
cd /d %DOCS%

Затем вы можете просто ввести docsнезависимо от вашего текущего местоположения, и это приведет вас кC:\Users\<current user>


Решение 2. Используйте substили net useдля создания сопоставления с другой буквой диска.

Вы можете использовать subst:

subst x: %USERPROFILE%

А потом

x:

К сожалению, сопоставления дисков не сохраняются при перезагрузке.

net use будет сохраняться при перезагрузке, например:

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

См. Ответы в разделе Как сделать сопоставление SUBST постоянным при перезагрузках? для подробных инструкций.


Решение 3. Установите cygwinи используйтеbash

Вы можете рассмотреть возможность установки Cygwin :

Cygwin это:

  • большая коллекция инструментов GNU и Open Source, которые предоставляют функциональность, аналогичную дистрибутиву Linux в Windows.

После того, как вы установили Cygwin, вы можете запустить его bashв терминале Cygwin и установить соответствующую переменную окружения bash HOME.

Альтернативы cygwin включают в себя msys (MingW) :

MSYS - это набор утилит GNU, таких как bash, make, gawk и grep, позволяющих создавать приложения и программы, которые зависят от традиционных инструментов UNIX. Он предназначен для дополнения MinGW и недостатков оболочки cmd.

И Git для Windows :

Git для Windows предоставляет эмуляцию BASH, используемую для запуска Git из командной строки. * Пользователи NIX должны чувствовать себя как дома, поскольку эмуляция BASH ведет себя так же, как команда "git" в средах LINUX и UNIX.


Решение 4: Используйте powershell

Как указано в комментарии к другому вопросу, который поддерживает SBI powershell, ~вы можете просто набрать:

cd ~

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD - Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • CD - Изменить каталог - Выбрать папку (и диск)
  • setx - постоянная установка переменных среды, SETX может использоваться для установки переменных среды для машины (HKLM) или в настоящий момент вошедшего в систему пользователя (HKCU).
  • subst - замена буквы диска для сети или локального пути.
ДэвидПостилл
источник
Если на Powershell есть два дополнительных способа: cd $HOMEиcd $env:HOMEPATH
Дирк Таннхойзер,
3

Не знаю, является ли это функцией нашего рабочего сценария входа в систему или Windows по умолчанию, но я могу использовать cd% HOMEPATH% для достижения этого, где HOMEPATH - это переменная окружения.

Роб Коуэлл
источник
Понимаю. Для написания% HOMEPATH% все еще требуется много времени. Также вы не можете выполнить автозаполнение. Есть ли способ сделать мое имя пользователя равным% HOMEPATH%, создав новую команду в cmd.exe?
Классик
1

Если вы хотите, чтобы все пользовательские команды запускались в их «домашнем» каталоге, создайте следующий раздел реестра в качестве расширяемого значения строки (без кавычек, конечно):

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

Если вы хотите, чтобы только ваша команда предложила это сделать:

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

Я практикую хранить папку ac: \ Scripts, в которой я храню командный файл типа "autoexec", который я вызываю с помощью этого ключа.

BillP3rd
источник
Берегись, это нарушит беседку и НПМ (и Visual Studio) ...
затруднительное
1

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

THBBFT
источник
clink == мощное редактирование командной строки в стиле Bash для cmd.exe
suspectus
Правильно, и весь смысл в том, что ~ разрешается в каталог User \ {user}.
THBBFT
0

Windows действительно стала «Все о графическом интерфейсе», поэтому в вашем случае я бы просто получил инструменты, которые вы хотите, вместо того, чтобы пытаться «согнуть» систему под свою волю ... Инструменты MinGW представляют собой отличную небольшую коллекцию некоторых из Наиболее широко используемые инструменты GNU ... Я настоятельно рекомендую, если вы любитель nix на Win ...

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

Эдди Б
источник
0

Я использовал лучший терминал ( cmder ) для этой цели. Он имеет встроенные псевдонимы и очень прост в использовании. Просто прочитайте документацию об алиасах здесь .

Дон Камилло
источник