Windows命令提示符中是否有快捷方式命令可以像Linux中一样访问当前用户的主目录?


104

我习惯了

cd ~

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

cd Users\username

到那里。有没有像Linux这样的捷径?如果我能做到的话那会很好

cd username

Windows Vista中是否可能发生这种情况?


7
在Unix中,不需要波浪号。 cd不带参数的将更改为您的主目录。
锥杀手

在su上有一个类似的问题,找不到它。
akira

1
@coneslayer我知道,但是要将文件从一个目录移动到另一个目录,您可以使用波浪号。
分级员

一样简单cd %userprofile%
6

您可以使用Windows Power Shell(在Win XP及更高版本上),允许您将〜用作主目录。还---->见 stackoverflow.com/questions/9228950/...
franz1

Answers:


20

您始终可以将.bat文件放在%PATH%中的某个位置,这会为您更改路径。


154

是的,您可以使用%HOMEPATH%,这是用户主目录的完整路径。

还有许多其他有用的变量可用,例如%OS%(操作系统)或%WINDIR%(Windows系统目录)。有关列表,请参见Wikipedia:环境变量


注意事项

实际上,事情有点复杂(与往常一样)。%HOMEPATH%仅包含路径,没有驱动器号,因此无法cd从其他驱动器读取。你也可以使用%USERPROFILE%,这包含光驱盘符,通常是同一个目录中%HOMEPATH%

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


5
我认为这是最正确的答案,因为它不依赖于硬编码的路径以及它们之间可能存在的任何古怪的文件系统链接。
Ed Orsi 2014年

3
这是正确的答案。
Frederik Krautwald 2014年

这救了我的命!在查看了来自不同问题的许多其他答案之后。再次!这对我有用,应标记为该问题的答案。
Patricia

@MissLucy:很高兴它对您有所帮助。至于接受答案:这取决于OP的决定。您可以在问题中添加评论以提醒他们。
sleske '16

请改用%USERPROFILE%。
JJS

21

可以将其他两个选项都添加到脚本中,并以类似于BillP3rd的答案的方式自动执行。

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

SET ~=%HOMEPATH%    
CD %~%

要么...

CD %~%\Desktop

要么...

doskey ~=cd %homepath%
~

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


1
你在开玩笑吗?我现在有一个char快捷方式,可以进入我喜欢cd进入的任何文件夹。这应该是第一答案。
安德鲁


7

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

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

cd /D %HOMEDRIVE%%HOMEPATH%

/D必须使用此开关cd才能更换驱动器。


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%

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

F:\test>echo %DOCS%
C:\Users\DavidPostill\

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

cd /d %DOCS%

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

cd %DOCS%

创建一个批处理文件(docs.cmd)并将它放在您的文件夹中PATH

docs.cmd:

@echo off
cd /d %DOCS%

然后,docs无论您当前处于什么位置,都可以输入内容,这将带您进入C:\Users\<current user>


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

您可以使用subst

subst x: %USERPROFILE%

接着

x:

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

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

net use x: "\\computerName\c$\pathName" /persistent:yes

请参阅“ 如何使SUBST映射在重新启动之间持久化”中的答案有关详细说明。


解决方案3:安装cygwin和使用bash

您可以考虑安装cygwin

Cygwin是:

  • GNU和开放源代码工具的大量集合,它们提供的功能类似于Windows上的Linux发行版。

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

cygwin的替代品包括msys(MingW)

MSYS是bash,make,gawk和grep等GNU实用程序的集合,以允许构建依赖于传统UNIX工具的应用程序和程序。它旨在补充MinGW和cmd shell的缺陷。

Windows的Git

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


解决方案4:使用 powershell

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

cd ~

进一步阅读

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

如果在Powershell上有两种其他方式: cd $HOMEcd $env:HOMEPATH
DirkThannhäuser18年

3

Dunno(如果它是我们工作登录脚本的功能或Windows默认设置),但是我可以使用cd%HOMEPATH%来实现,其中HOMEPATH是环境变量。


我懂了。编写%HOMEPATH%仍然需要很多时间。您也无法自动完成。是否可以通过在cmd.exe中执行新命令使用户名等于%HOMEPATH%?
分级员

1

如果希望所有用户的命令提示符都在其“主”目录中启动,请创建以下注册表项作为“可扩展字符串值”(当然,用引号引起来):

HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

如果只希望您的命令提示符执行此操作:

HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun : "cd /d %USERPROFILE%"

我将保留ac:\ Scripts文件夹作为一种做法,在该文件夹中保留一个通过此键调用的“ autoexec”类型的批处理文件。


当心,这将破坏凉亭和npm(以及Visual Studio)...
Quantdary

1

我意识到这是一个已久的问题,但仅供参考。Install clink,它以多种方式扩展了命令提示符。是的,它比上面的解决方案重,但它使cmd窗口的性能好得多。


clink ==针对cmd.exe的功能强大的Bash风格的命令行编辑
2015年

是的,重点是〜解析到User \ {user}目录。
THBBFT

0

Windows确实已经成为“关于gui的全部”,因此在您的情况下,我只会获得所需的工具,而不是试图按照自己的意愿“弯曲”系统... MinGW工具是一些出色的小工具最广泛使用的gnu工具...如果您在Win上使用nix风扇,我强烈建议您...

http://www.mingw.org/wiki/MSYS


0

我为此使用了一个更好的终端(cmder)。它内置了别名,非常易于使用。只需在此处阅读有关Aliases的文档。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.