我正在尝试使用命令提示符来移动一些文件,我习惯于使用 linux 终端~
来指定我的主目录,我到处都看过,但我似乎无法在 windows 命令提示符下找到它(Documents and Settings\[user]
)
12 回答
你会失望的:%userprofile%
不过,您可以使用其他终端。Powershell,我相信你可以在 XP 和更高版本上使用(并且预装在 Win7 中),它允许你~
用于主目录。
您可以%HOMEDRIVE%%HOMEPATH%
为驱动器 +\docs settings\username
或\users\username
.
您可以使用%homedrive%%homepath%
环境变量来完成此操作。
连接时的两个命令变量为您提供所需的用户主目录路径,如下所示:
echo %homedrive%
在命令提示符下运行给出:C:
echo %homepath%
在命令提示符下运行给出:\Users\<CurrentUserName>
当一起使用时,%homedrive%%homepath%
它给出:
C:\Users\<CurrentUserName>
更新 - 2019 年 7 月 18 日更好的版本。
最后总结一下,尽管我已经为大多数 Windows 控制台工作转向了 powershell,但我决定解决这个旧的 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 ..
然后在我的路径中创建一个 bat 文件;
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%
过,如果您想继续使用相同的习惯,那也可以
然后,您可以%~%
改用。
如果你想要更短的 Jay's 版本,你可以试试
set usr=%userprofile%
cd %usr%
或者,如果您愿意,您甚至可以使用%u%。无论如何,它可以节省一些击键。
你自己几乎可以做同样的事情。打开环境变量并单击“用户变量...”中的“新建”按钮。
变量名称: ~
变量值:单击“浏览目录...”按钮并选择您想要的目录。
在此之后,打开 cmd 并输入:
cd %~%
。有用。
简单地
首先定义路径
doskey ~=cd %homepath%
然后访问
~
使用%systemdrive%%homepath%
. %systemdrive%
给出驱动器字符(大部分C:
)并%homepath%
给出用户主目录(\Users\<USERNAME>
)。
# 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
只需编写一个脚本来执行此操作而无需过多输入,同时保持可移植性,因为设置~
需要%userprofile%
在每台 Windows PC 上手动设置,同时克隆和设置目录作为PATH
机械的一部分。
您也可以执行 cd ......\ 与将您带到主目录的文件夹一样多的次数。例如,如果你在 cd:\windows\syatem32,那么 cd ....\ 带你到家,即 c:\