Answers:
您可以%HOMEDRIVE%%HOMEPATH%
为驱动器+ \docs settings\username
或\users\username
。
您可以使用%systemdrive%%homepath%
环境变量来完成此操作。
连接时,这两个命令变量将为您提供所需用户的主目录路径,如下所示:
echo %systemdrive%
在命令提示符下运行会给出:
C:
echo %homepath%
在命令提示符下运行会给出:
\Users\<CurrentUserName>
当一起使用时,它变成:
C:\Users\<CurrentUserName>
%systemdrive%
环境变量的内容,而环境变量与%homedrive%
Alex提到的等效。如果您发现任何不正确的地方,请务必对此提供反馈。
更新-更好的版本 2019年7月18日。
最后的总结,尽管无论如何我已经开始使用Powershell进行大多数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")
哦,它还允许延迟引用,即使文件夹路径名中包含空格,我也发现它很有用,因为它包装了所有参数,就好像它是一个长字符串一样。这意味着仅使用初始引号也可以,或者完全不使用引号也可以。
下面的所有其他内容现在可能会被忽略,由于历史原因,它被保留了-因此,我不再犯同样的错误
旧更新, 2018
年10月19日。万一其他人尝试了我的方法,我下面的原始答案无法处理空格,例如,以下操作失败。
> cd "c:\Program Files"
Files""]==["~"] was unexpected at this time.
我认为必须有一种解决方法。如果我可以改善答案,将再次发布。(见上文,我终于按照我想要的方式完成了所有工作。)
我的原始答案,仍然需要工作... 2018
年10月7日。我今天才尝试这样做,我想我明白了,这是我认为很好的方法;
首先,一些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..)
我只是尝试set ~=%userprofile%
过,如果您想继续使用同样的习惯,也可以
然后可以使用%~%
。
~
= 的值%userprofile%
?我在命令提示符下运行了您的帖子中提到的确切命令,但它抛出错误- '~' is not recognized as an internal or external command, operable program or batch file.
。您能再详细说明一下您的答案吗?
set ~=%userprofile%
则可以使用%~%
该变量
只需编写一个脚本即可做到这一点,而无需太多输入,同时又保持了可移植性,因为~
要进行设置,%userprofile%
需要在每台Windows PC上进行手动设置,而将目录克隆和设置PATH
为机械目录。
只是
首先定义路径
doskey ~=cd %homepath%
然后访问
~
您也可以执行cd ...... \多次,因为有很多文件夹可以将您带到主目录。例如,如果您在cd:\ windows \ syatem32中,则cd .... \带您回家,即c:\
C:\Users\username
文件夹(或c:\Documents and Settings\username
在较早的Windows中)
C:\
,也建议使用cd \
而不是不确定的数量cd ..\..\..