답변:
당신은 %HOMEDRIVE%%HOMEPATH%
드라이브 + \docs settings\username
또는 할 수 있습니다 \users\username
.
%systemdrive%%homepath%
이를 위해 환경 변수를 사용할 수 있습니다 .
연결된 두 명령 변수는 아래와 같이 원하는 사용자의 홈 디렉토리 경로를 제공합니다.
실행 echo %systemdrive%
명령 프롬프트에하는 수 있습니다 :
C:
실행 echo %homepath%
명령 프롬프트에하는 수 있습니다 :
\Users\<CurrentUserName>
함께 사용하면 다음과 같이됩니다.
C:\Users\<CurrentUserName>
%systemdrive%
가 %homedrive%
언급 한 것과 동일한 환경 변수 에 대해서는 언급하지 않았습니다 . 잘못된 것을 발견하면 이에 대한 의견을 보내 주시기 바랍니다.
업데이트 -2019 년 7 월 18 일 더 나은 버전 .
최종 요약은 대부분의 Windows 콘솔 작업을 위해 powershell로 이동했지만이 오래된 cmd 문제를 마무리하기로 결정했지만 오늘은 cmd 콘솔을 사용해야 했으며이 기능이 부족하여 실제로 충격을 받았습니다. 이것은 마지막으로 공백으로도 작동하며 이전 답변이 실패합니다.
또한이 파일은 ~를 다른 홈 하위 폴더의 접두사로도 사용할 수 있으며 슬래시를 백 슬래시로 바꿉니다. 여기 있습니다.
단계 1. 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")
또한, 게으른 인용을 허용합니다. 공백이 폴더 경로 이름에 있더라도 모든 인수를 마치 하나의 긴 문자열 인 것처럼 래핑하기 때문에 유용합니다. 즉, 첫 번째 인용 만 작동하거나 따옴표없이 완벽하게 작동합니다.
아래의 다른 모든 내용은 이제 무시 될 수 있습니다. 역사적 이유로 남아 있습니다. 따라서 다시는 같은 실수를하지 않습니다.
오래된 업데이트 10월 19일 2018
의 경우 사람에서 다른, 내 원래의 대답은 아래의 실패 다음, 예를 들어, 공백을 처리하지 않은 나의 접근 방식을 시도했다.
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
나는 그것을 해결할 수있는 방법이 있어야한다고 생각합니다. 답변을 개선 할 수 있으면 다시 게시합니다. (위 참조, 마침내 내가 원하는 방식으로 작동하도록했습니다.)
내 원래의 대답, 여전히 일이 필요했습니다 ... 2018 년 10 월 7 일.
오늘 방금 해보려고 했는데 , 생각합니다. 이것이 잘 작동하는 것입니다.
먼저, 일부 도스 키 매크로;
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..)
.bashrc
형식 파일 ( superuser.com/questions/144347/…)로 CMD를 시작하는 방법이 있습니다. 이 답변에서 1 단계를 bashrc.bat
파일에 넣으면 시작시 설정됩니다.
방금 시도했지만 set ~=%userprofile%
동일한 습관을 계속 사용하고 싶다면 효과가 있습니다.
그런 다음 %~%
대신 사용할 수 있습니다 .
~
= 의 값을 정확히 어떻게 설정 %userprofile%
합니까? 명령 프롬프트의 게시물에 언급 된 정확한 명령을 실행했지만 오류가 발생 '~' is not recognized as an internal or external command, operable program or batch file.
합니다. 답을 좀 더 정교하게 설명해 주시겠습니까?
set ~=%userprofile%
당신은 사용할 수있는 %~%
변수에 대한
이식성을 유지하면서 너무 많은 타이핑없이이 작업을 수행하는 스크립트를 작성하기 만하면 각 Windows PC에서 수동 설정 ~
이 %userprofile%
필요하도록 설정하고 디렉토리의 일부로 디렉토리를 복제하고 설정하는 PATH
것이 기계적인 것입니다.
홈 디렉토리로 이동하는 폴더 수만큼 cd ...... \를 수행 할 수도 있습니다. 예를 들어, cd : \ windows \ syatem32에 있으면 cd .... \는 집으로 이동합니다. 즉 c : \
C:\Users\username
폴더 (또는 c:\Documents and Settings\username
이전 버전의 Windows에서)
C:\
cd \
cd ..\..\..