Какая альтернатива для ~ (домашний каталог пользователя) в командной строке Windows?

Я пытаюсь использовать командную строку для перемещения некоторых файлов, я привык к терминалу Linux, где я использую ~ указать мой домашний каталог, который я искал везде, но я не мог найти его для командной строки Windows (Documents and Settings\[user])

13 ответов

Решение

Вы будете разочарованы %userprofile%

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

Вы можете %HOMEDRIVE%%HOMEPATH% для езды + \docs settings\username или же \users\username,

Ты можешь использовать %systemdrive%%homepath% переменная среды для достижения этой цели.

При объединении двух переменных команды вы получите путь к домашнему каталогу нужного пользователя, как показано ниже:

Бег echo %systemdrive% в командной строке выдает:

C:

Бег echo %homepath% в командной строке выдает:

\Users\<CurrentUserName>

Когда используется вместе это становится:

C:\Users\<CurrentUserName>

Обновление 19 октября 2018 года.
В случае, если кто-то еще попробует мой подход, мой первоначальный ответ ниже не обрабатывает пробелы, например, следующий сбой.

> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.

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


Мой оригинальный ответ, все еще нуждается в работе... 7 октября 2018 года.
Я просто пытался сделать это сегодня, и я думаю, что получил, это то, что я думаю, работает хорошо;

Сначала несколько макросов doskey;

DOSKEY cd=cdtilde.bat $* 
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..

и затем файл с битой на моем пути;

cdtilde.bat

@echo off
if ["%1"]==["~"] ( 
    chdir /D "%USERPROFILE%"
) else ( 
    chdir /D %* 
)

Все это, кажется, работает нормально;

cd ~ (traditional habit)
cd~  (shorthand version)
cd.. (shorthand for going up..)
      # cmd
# use:  %USERPROFILE%

# example:
kubectl config --kubeconfig=%USERPROFILE%\.kube\config.xyz view
      # powershell
# use:  $env:USERPROFILE

# example
kubectl config --kubeconfig=$env:USERPROFILE\.kube\config.xyz view

Я только что попробовал set ~=%userprofile% и это тоже работает, если вы хотите продолжать использовать ту же привычку

Вы можете использовать %~% вместо.

Просто

Первое определение пути

doskey ~=cd %homepath%

Тогда доступ

~

Вы можете сделать почти то же самое самостоятельно. Откройте переменные среды и нажмите кнопку "Создать" в разделе "Пользовательские переменные для...".
Имя переменной: ~
Значение переменной: нажмите кнопку "Обзор каталога..." и выберите нужный каталог.

И после этого откройте cmd и введите:
кд%~%
, Оно работает.

Если вы хотите более короткую версию Jay's, вы можете попробовать

    set usr=%userprofile%
    cd %usr%

Или вы можете использовать %u%, если хотите. В любом случае это экономит некоторые нажатия клавиш.

Использовать %systemdrive%%homepath%. %systemdrive% придает драйвовый характер (в основном C: ) а также %homepath% дает домашний каталог пользователя ( \Users\<USERNAME> ).

cd ~ будет нормально работать в Windows PowerShell, если вы столкнулись с неподдерживаемыми командами, убедитесь, что вы используете PowerShell вместо CMD или используйте Windows GIT bash.

Просто написал скрипт, чтобы сделать это, не слишком много печатая, поддерживая переносимость как настройку ~ быть %userprofile% необходима ручная настройка на каждом ПК с Windows при клонировании и настройке каталога как части PATH является механическим

https://github.com/yxliang01/Snippets/blob/master/windows/

Вы также можете делать cd ......\ столько раз, сколько папок ведет в домашний каталог. Например, если вы находитесь в cd:\windows\syatem32, то cd ....\ приведет вас к дому, то есть c:\

Другие вопросы по тегам