在 Windows 命令提示符中是否有一个快捷命令可以像在 Linux 中那样进入当前用户的主目录?

cla*_*ser 134 windows windows-vista command-line

我习惯使用

cd ~
Run Code Online (Sandbox Code Playgroud)

直接进入我的主目录。在 Windows 命令提示符下我必须做

cd Users\username
Run Code Online (Sandbox Code Playgroud)

到那里。有没有像 Linux 这样的快捷方式?如果我能通过这样做到达那里就好了

cd username
Run Code Online (Sandbox Code Playgroud)

在 Windows Vista 中可能有这样的事情吗?

sle*_*ske 198

是的,您可以使用%HOMEPATH%, 和%HOMEDRIVE%。它们分别包含用户主目录的完整路径(不包括驱动器号)和驱动器号。

还有很多其他有用的变量可用,例如%OS%(操作系统)或%WINDIR%(Windows 系统目录)。有关列表,请参阅维基百科:环境变量


注意事项

实际上,事情有点复杂(像往常一样)。还有%USERPROFILE%,它确实包含驱动器号,并且通常与%HOMEPATH%plus位于同一目录%HOMEDRIVE%

这些变量的值以及哪个适合您,将取决于 Windows 版本和管理员的任何更改,因为它们的值可能不同(参见例如问题配置文件和主路径之间差异)。

  • 在我看来,这是最正确的答案,因为它不依赖于硬编码路径和它们之间可能存在的任何古怪的文件系统链接。 (5认同)
  • 这是正确答案。 (3认同)

小智 24

另外两个选项都可以添加到脚本中并以与 BillP3rd 的答案类似的方式自动执行。

还有两个字符,但是...

SET ~=%HOMEPATH%    
CD %~%
Run Code Online (Sandbox Code Playgroud)

或者...

CD %~%\Desktop
Run Code Online (Sandbox Code Playgroud)

或者...

doskey ~=cd %homepath%
~
Run Code Online (Sandbox Code Playgroud)

当然,您不能~在路径中使用它,但是作为快速“跳转到我的主目录”输入~ Enter非常快。


der*_*oni 20

你总是可以.bat在你的某个地方放置一个文件,%PATH%它会为你改变路径。

  • 你能详细说明一下吗? (2认同)

Jai*_* M. 10

.cmd在我的目录中创建了一个文件PATH并将其命名为cd~.cmd. 其内容是:

@cd %HOMEPATH%
Run Code Online (Sandbox Code Playgroud)

我可以cd~从任何地方输入以进入我的主目录,尽管它与cd ~(注意缺少的空间)不同,但对我来说已经足够接近了。

  • 最聪明的回答。将您的与 [Kenny Evitt 的这个答案](http://superuser.com/a/790844/401935) 相结合提供了最佳解决方案。 (2认同)

Ken*_*itt 9

sleske 的答案几乎完全正确,但并不总是有效。

如果您的主目录位于作为映射驱动器的网络共享设置上,则无论当前目录的驱动器如何,都运行以下命令:

cd /D %HOMEDRIVE%%HOMEPATH%
Run Code Online (Sandbox Code Playgroud)

/D开关是允许cd更换驱动器所必需的。


Dav*_*ill 5

有捷径C:\Users\<current user>\吗?

没有直接的捷径。

有几种不同的解决方案(见下文)。

  1. 将环境变量与cd或一起使用cd /d

  2. 使用substnet use来创建到另一个驱动器号的映射。

  3. 安装cygwin和使用bash

  4. 使用powershell- powershell 支持~

如果您准备使用powershell而不是cmd.


解决方案 1:将环境变量与cd或一起使用cd /d

如果要定期更改到此目录,请运行以下命令:

setx DOCS %USERPROFILE%
Run Code Online (Sandbox Code Playgroud)

这将永久设置环境变量DOCS,但为了使用它,您需要先启动一个新的cmdshell,然后定义变量并准备使用:

F:\test>echo %DOCS%
C:\Users\DavidPostill\
Run Code Online (Sandbox Code Playgroud)

要从任何位置更改目录,请使用以下命令:

cd /d %DOCS%
Run Code Online (Sandbox Code Playgroud)

如果您已经在驱动器上c:,则可以使用:

cd %DOCS%
Run Code Online (Sandbox Code Playgroud)

创建一个批处理文件 ( docs.cmd) 并将其放在PATH.

文档.cmd:

@echo off
cd /d %DOCS%
Run Code Online (Sandbox Code Playgroud)

然后,docs无论您当前的位置如何,您都可以直接输入,它会带您到C:\Users\<current user>


解决方案 2:使用substnet use创建到另一个驱动器号的映射。

您可以使用subst

subst x: %USERPROFILE%
Run Code Online (Sandbox Code Playgroud)

进而

x:
Run Code Online (Sandbox Code Playgroud)

不幸的是,驱动器映射在重新启动后不会持续存在。

net use 将在重新启动后持续存在,例如:

net use x: "\\computerName\c$\pathName" /persistent:yes
Run Code Online (Sandbox Code Playgroud)

请参阅如何使 SUBST 映射在重新启动后持久化?详细说明。


方案三:安装cygwin使用bash

您可以考虑安装cygwin

Cygwin 是:

  • 大量 GNU 和开源工具,提供类似于 Windows 上的 Linux 发行版的功能。

安装 cygwin 后,您可以bash在 cygwin 终端中运行并根据需要设置 bash 环境变量HOME

cygwin 的替代方案包括msys (MingW)

MSYS 是 GNU 实用程序的集合,例如 bash、make、gawk 和 grep,用于构建依赖于传统 UNIX 工具的应用程序和程序。旨在补充MinGW和cmd shell的不足。

适用于 Windows 的 Git

Windows 版 Git 提供了一个 BASH 模拟,用于从命令行运行 Git。*NIX 用户应该有宾至如归的感觉,因为 BASH 仿真的行为就像 LINUX 和 UNIX 环境中的“git”命令。


解决方案 4:使用 powershell

正如在SBI powershell 支持的另一个问题的评论中指出的那样,~您只需键入:

cd ~
Run Code Online (Sandbox Code Playgroud)

进一步阅读

  • Windows CMD 命令行的 AZ 索引- Windows cmd 行相关的所有内容的极好参考。
  • cd - 更改目录 - 选择文件夹(和驱动器)
  • setx - 永久设置环境变量,SETX 可用于为机器 (HKLM) 或当前登录用户 (HKCU) 设置环境变量。
  • subst - 用驱动器号替换网络或本地路径。