Какая альтернатива для ~ (домашний каталог пользователя) в командной строке 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
является механическим
Вы также можете делать cd ......\ столько раз, сколько папок ведет в домашний каталог. Например, если вы находитесь в cd:\windows\syatem32, то cd ....\ приведет вас к дому, то есть c:\