Відповіді:
Можна %HOMEDRIVE%%HOMEPATH%
для диска + \docs settings\username
або \users\username
.
Для цього можна використовувати %systemdrive%%homepath%
змінну середовища.
Дві змінні команди при об'єднанні дають вам потрібний шлях до домашнього каталогу користувача, як показано нижче:
Запуск echo %systemdrive%
у командному рядку дає:
C:
Запуск echo %homepath%
у командному рядку дає:
\Users\<CurrentUserName>
При спільному використанні він стає:
C:\Users\<CurrentUserName>
%systemdrive%
змінну середовища, еквівалентну %homedrive%
згаданій Алексом. Будь ласка, дайте мені свій відгук про це, якщо ви виявите щось неправильне.
Оновлення - краща версія 18 липня 2019 року.
Підсумковий підсумок, хоча я все-таки перейшов на powerhell для більшості консольних систем Windows, але я вирішив завершити цю стару проблему з cmd, мені довелося сьогодні перейти на консоль cmd, і відсутність цієї функції дійсно мене вразило. Цей нарешті також працює з пробілами, де моя попередня відповідь не змогла б.
Крім того, ця тепер також може використовувати ~ як префікс і для інших домашніх підпапок, і він підміняє косої риски вперед і на наступні риски. Так ось воно;
Крок 1. Створіть ці doskey макроси, десь вони збираються щоразу, коли cmd запускається.
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
Крок 2. Створіть файл cdtilde.bat і покладіть його десь у вашу PATH
@echo off
set dirname=""
set dirname=%*
set orig_dirname=%*
:: remove quotes - will re-attach later.
set dirname=%dirname:\"=%
set dirname=%dirname:/"=%
set dirname=%dirname:"=%
:: restore dirnames that contained only "/"
if "%dirname%"=="" set dirname=%orig_dirname:"=%
:: strip trailing slash, if longer than 3
if defined dirname if NOT "%dirname:~3%"=="" (
if "%dirname:~-1%"=="\" set dirname="%dirname:~0,-1%"
if "%dirname:~-1%"=="/" set dirname="%dirname:~0,-1%"
)
set dirname=%dirname:"=%
:: if starts with ~, then replace ~ with userprofile path
if %dirname:~0,1%==~ (
set dirname="%USERPROFILE%%dirname:~1%"
)
set dirname=%dirname:"=%
:: replace forward-slashes with back-slashes
set dirname="%dirname:/=\%"
set dirname=%dirname:"=%
chdir /D "%dirname%"
Випробуваний штраф з;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)
cd / (eg, root of C:)
cd ~/.config (eg, the .config folder under my home folder)
cd /Program Files (eg, "C:\Program Files")
cd C:/Program Files (eg, "C:\Program Files")
cd \Program Files (eg, "C:\Program Files")
cd C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files (eg, "C:\Program Files")
cd "C:\Program Files" (eg, "C:\Program Files")
О, також це дозволяє ліниве цитування, що я вважаю корисним, навіть якщо пробіли знаходяться в назвах шляху папки, оскільки він обертає всі аргументи так, ніби це одна довга рядок. Що означає, що просто початкова цитата також працює, або повністю без лапок також працює.
Усі інші речі нижче, можливо, ігноруються, вони залишилися з історичних причин - тому я не буду робити ті ж помилки знову
старе оновлення 19 жовтня 2018 року.
Якщо хтось інший спробував мій підхід, моя початкова відповідь нижче не обробляла пробілів, наприклад, наступна помилка.
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
Я думаю, що має бути спосіб вирішити це. Повідомлю знову, якщо я можу покращити свою відповідь. (див. вище, я нарешті змусив це працювати так, як я хотів.)
Моя оригінальна відповідь, ще потрібна робота ... 7 жовтня 2018.
Я просто намагався це зробити сьогодні, і я думаю, що це я отримав, це те, що я думаю, працює добре;
По-перше, деякі доскі макроси;
DOSKEY cd=cdtilde.bat $*
DOSKEY cd~=chdir /D "%USERPROFILE%"
DOSKEY cd..=chdir ..
а потім файл bat на моєму шляху;
cdtilde.bat
@echo off
if ["%1"]==["~"] (
chdir /D "%USERPROFILE%"
) else (
chdir /D %*
)
Все це, здається, працює добре;
cd ~ (traditional habit)
cd~ (shorthand version)
cd.. (shorthand for going up..)
.bashrc
файлу -type: superuser.com/questions/144347/… . bashrc.bat
Якщо поставити крок 1. з цієї відповіді у файл, вона встановить її при запуску.
Ви можете зробити майже те саме. Відкрийте змінні середовища та натисніть кнопку "Створити" у розділі "Змінні користувача для ...".
Назва змінної: ~
Значення змінної: Натисніть кнопку "Оглянути каталог ..." та виберіть потрібний каталог.
Після цього відкрийте cmd і введіть це:
cd% ~%
. Це працює.
Я просто спробував set ~=%userprofile%
і це теж працює, якщо ви хочете продовжувати використовувати ту саму звичку
Потім можна використовувати %~%
замість цього.
~
= %userprofile%
? Я запустив точну команду, згадану у вашому посту в командному рядку, але вона кидає помилку - '~' is not recognized as an internal or external command, operable program or batch file.
. Чи можете ви, будь ласка, детальніше розглянути свою відповідь?
set ~=%userprofile%
то ви можете використовувати %~%
для змінної
Просто написав сценарій , щоб зробити це без занадто великого набору тексту, зберігаючи при цьому мобільність , як установка ~
буде %userprofile%
потреби ручного налаштування на кожному ПК з Windows при клонуванні і налаштування каталогу як частина PATH
є механічним.
Просто
Перший визначення шляху
doskey ~=cd %homepath%
Потім доступ
~
Ви також можете робити CD ...... \ стільки разів, скільки є папки, які переносять вас до домашнього каталогу. Наприклад, якщо ви перебуваєте у cd: \ windows \ syatem32, тоді cd .... \ переведе вас додому, тобто c: \
C:\Users\username
папку (або c:\Documents and Settings\username
в попередніх Windows)
C:\
, скоріше радимо використовувати cd \
замість невизначеної кількостіcd ..\..\..