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

Вопрос или проблема

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

cd ~

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

cd Users\имя_пользователя

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

cd имя_пользователя

что-то вроде этого возможно в Windows Vista?

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

Да, вы можете использовать %HOMEPATH% и %HOMEDRIVE%. Эти переменные содержат полный путь к домашней директории пользователя (без буквы диска) и букву диска соответственно.

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


Заметки:

На самом деле, все немного сложнее (как обычно). Существует также %USERPROFILE%, который действительно содержит букву диска и обычно представляет собой ту же директорию, что и %HOMEPATH% плюс %HOMEDRIVE%.

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

Есть два других варианта, которые можно добавить в скрипт и автоматически выполнять аналогично ответу BillP3rd.

Это два дополнительных символа, но…

SET ~=%HOMEPATH%    
CD %~%

или…

CD %~%\Рабочий стол

Или…

doskey ~=cd %homepath%
~

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

Ответ sleske почти полностью верный, но он не всегда работает.

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

cd /D %HOMEDRIVE%%HOMEPATH%

Ключ /D необходим для того, чтобы команда cd могла менять диски.

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

@cd %HOMEPATH%

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

Есть ли сокращение для C:\Users\<текущий пользователь>\?

Прямого сокращения нет.

Существуют несколько различных решений (см. ниже).

  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\<текущий пользователь>


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

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

subst x: %USERPROFILE%

А затем

x:

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

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

net use x: "\\имя_компьютера\c$\путь" /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 ~

Дополнительная информация

  • Индекс командной строки Windows CMD от A до Z – Отличная справка по всем аспектам командной строки Windows.
  • cd – Сменить директорию – Выбрать папку (и диск)
  • setx – Установите переменные окружения навсегда, SETX можно использовать для установки переменных окружения для машины (HKLM) или для текущего вошедшего пользователя (HKCU).
  • subst – Заменить букву диска для сетевого или локального пути.

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

Я думаю, что все упустили главную суть: цель cd ~ заключается в том, чтобы использовать минимальное количество нажатий клавиш, а не неудобные проценты, доллары или тильды… не говоря уже о cd %HOMEPATH% или cd %HOME%.

С давних времен у меня есть директория c:\Tools\bats, куда я помещаю свой оптимизированный минимальный скрипт, названный…. cdd.bat.

Так почему cdd.bat? Почему не home.bat или h.bat?
Просто: с home или h вам придется чуть-чуть сместить правую руку, чтобы нажать ‘h’, ‘o’, ‘m’ и все равно придется перемещать левую руку один раз, чтобы нажать ‘e’, в то время как правая рука ждет, чтобы нажать Enter, и также важно, что для home требуется 5 нажатий клавиш, а для h – всего два, НО правой руке нужно немного передвигаться… с чем я и готов расстаться.

С h происходит небольшое движение всего правого предплечья, чтобы нажать ‘h’, затем Enter… с чем я тоже готов расстаться.

С cdd, однако, обе мои руки уже находятся в оптимальном положении на клавиатуре, поэтому нет лишних движений ни с одной стороны. Это дает мне 4 нажатия клавиш, при этом первые три – это быстрая последовательность.

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

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

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

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

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

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

Я обычно сохраняю файл autoexec.bat в папке C:\Scripts, который вызываю через этот ключ.

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

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

Я написал home.bat с содержимым set home="ваш/путь/к/домашнему/каталогу"&c:&cd %home% и сохранил его в любой папке, представленной в переменных среды. Если вы не на диске C, отредактируйте содержимое home.bat.
Чтобы вы могли использовать home как команду в любом месте через cmd.
Также отредактируйте переменную home, чтобы быстро задать домашний путь в текущей сессии, довольно удобно.

Вы можете использовать этот путь вместо “C:\Windows\explorer.exe”. Я понимаю, что этот вопрос уже был отвечен, но я делюсь им здесь для тех, кто все еще может искать альтернативное решение.

.

Ответ или решение

В Windows Command Prompt действительно нет прямого аналога команды cd ~ из Linux для быстрого перехода в домашнюю директорию текущего пользователя. Однако есть несколько способов достичь этого более удобно.

Использование Переменных Среды

  1. Переменные среды: В Windows есть несколько переменных среды, которые можно использовать для перехода в домашнюю директорию.

    • %USERPROFILE%: Эта переменная указывает на домашнюю директорию текущего пользователя, например, C:\Users\<ваш_пользователь>. Вы можете ввести следующую команду:

      cd %USERPROFILE%
    • %HOMEDRIVE% и %HOMEPATH%: Эти переменные могут быть использованы вместе для более точного перехода в домашнюю директорию:

      cd /d %HOMEDRIVE%%HOMEPATH%
  2. Автоматизация с помощью .bat файлов: Если вы хотите сделать процесс более быстрым, можно создать .bat файл. Для этого создайте файл, например, cd_home.bat с содержимым:

    @echo off
    cd /d %USERPROFILE%

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

Использование команды doskey

Еще один способ – использовать команду doskey для создания псевдонима:

doskey ~="cd %USERPROFILE%"

Теперь, вводя ~ и нажимая Enter, вы будете перемещаться в свою домашнюю директорию.

Изменение Режима Запуска CMD

Можно настроить командный процессор, чтобы он всегда начинал в домашней директории, добавив следующую строку в реестр:

  • Для текущего пользователя:

    HKCU\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"
  • Для всех пользователей:

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

Альтернативные Решения

  • Использование PowerShell: Если вам не принципиально использовать именно Command Prompt, в PowerShell вы можете использовать cd ~, что тоже удобно.

  • Установка Cygwin или Git Bash: Если вам нужны более расширенные возможности, можно установить Cygwin или Git Bash, которые предоставляют Unix-подобные команды и поведение.

  • Использование Cmder: Это приложение улучшает работу вашего терминала и предоставляет функции, которых нет в стандартном Command Prompt, такие как создание алиасов.

Заключение

Хотя Windows Command Prompt не имеет прямого аналога команды cd ~, благодаря вышеупомянутым методам можно упростить процесс перехода в домашнюю директорию пользователя. Выбор конкретного метода зависит от ваших предпочтений и рабочих процессов.

Оцените материал
Добавить комментарий

Капча загружается...