在 Windows 中,Linux 的“~”(波浪号)相当于什么?

Fre*_*ind 92 windows linux command-line

在 Linux 中,我们可以通过在~之后输入波浪号 ( ) 字符来转到用户主页cd

cd ~
Run Code Online (Sandbox Code Playgroud)

如何在 Windows 中做同样的事情?

每次,我都需要输入:

cd C:\Document and Settings\freewind
Run Code Online (Sandbox Code Playgroud)

那太无聊了。

小智 70

您可以使用cd /d %USERPROFILE%,如果您使用CMD。

或者,cd ~如果您使用 PowerShell,则可以使用。

  • @Jon:`cd` 是个例外。因为它总是需要一个参数,所以没有必要引用。(在 Windows 上,程序和内置程序必须自己解析它们的命令行,shell 不会这样做。)然而,总是引用路径 * 是* 一个好习惯。 (8认同)
  • +1 但也要在变量周围添加引号(也许它是 `c:\documents and settings\...`,除非被引用,否则空格会破坏它) (4认同)

Jon*_*Jon 50

cd /d "%HOMEDRIVE%%HOMEPATH%" 会这样做——但我不确定你是否认为这是一种改进。

您还可以为上述命令定义别名:

doskey cdhome=cd /d "%HOMEDRIVE%%HOMEPATH%"
Run Code Online (Sandbox Code Playgroud)

这之后,简直了cdhome

  • @abatishchev:好问题。[这个问题](http://serverfault.com/questions/85713/when-would-the-windows-environment-variable-be-homepath) 似乎表明 %USERPROFILE% 更可取。 (11认同)
  • @Freewind:你一定喜欢默认的 Windows shell。 (4认同)
  • 您也可以使用 cd~ 作为宏名称,而不是 cdhome。 (4认同)
  • @abatishchev:Windows NT 帐户可以附加一个与“配置文件目录”分开的“主目录”路径。配置文件保留您的 *设置*(注册表)、应用程序数据等。另一方面,主目录用于*您自己的文件*——当程序第一次显示“打开/保存”对话框时,它将从主目录启动。(Windows 95/98 使用它的方式有些不同;不记得具体细节。)这在 Active Directory 环境中很有用,用于将文件存储在网络共享上但将配置文件保留在本地。 (4认同)
  • @jftuga:甚至`~`。 (3认同)

小智 13

一种可能性是subst从命令提示符使用命令:

subst z: C:\Document and Settings\freewind
Run Code Online (Sandbox Code Playgroud)

每当您导航到驱动器 Z: 时,您都会看到您的用户文件夹。

缺点是每次登录时都需要运行它。我使用了一个批处理文件并将其放在我的启动文件夹中,但可能有更优雅的解决方案。

好处是与 doskey 别名不同,它可以通用(Windows 资源管理器、浏览对话框等),而不仅仅是在命令提示符下更改目录时。它对于具有旧浏览对话框的旧程序特别有用,这些对话框在最顶层具有驱动器号,而不是“桌面”。


Bal*_*i C 7

你可以这样做:

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

  • 如果您在不同的驱动器上,这将中断 - 例如,您在“E:”上,而您的 homedir 在“C:”上 (5认同)

web*_*rc2 5

~.bat您可以创建一个名为包含的批处理文件

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

并将其添加到您的 PATH 变量中(开始->[右键单击“计算机”]->属性->“高级系统设置”[在左栏中]->“环境变量”

从那里,只需编辑您的 PATH 变量以包含包含您的~.bat文件的文件夹。(这允许您仅使用文件名而不是文件的绝对路径从任何地方调用脚本)

另外,请确保您的PATHEXT环境变量包含.BAT某处(这允许您键入~而不是~.bat)。

当需要使用时,只需~在命令提示符下输入即可。这个解决方案是持久的——您不必每次启动 shell 时都进行设置,也不需要破解您的注册表。