寻找运行对话框/提示符的命令来打开当前用户的目录

寻找运行对话框/提示符的命令来打开当前用户的目录

在命令提示符下,如果我输入以下命令:

start .

然后它只是打开当前用户的目录C:\Users<当前用户名>在 Windows 7 中。但此命令在 Windows 运行提示符下不起作用。如果存在可直接从运行提示符打开当前用户目录的命令,有人能帮我吗?目前我必须先打开命令提示符,然后键入此命令以在 Windows 资源管理器中打开所需的目录。

更新: 我意识到开始 。命令提示符中的命令并不总是打开用户的主配置文件目录。只有当 shell 提示符中的当前工作目录与当前用户的主配置文件目录相同时,才会发生这种情况。所以,如果我在目录:\在我的 shell 提示符下它就会打开目录:\在资源管理器中代替C:\users<当前用户名>

答案1

为什么不简单地使用环境变量%USERPROFILE%呢? 用户资料

无需启动任何进程(CMD.EXE或任何进程)即可打开用户的默认文件夹。

答案2

start命令是 的内部命令cmd。当您在 中输入命令时cmd,它将是:

  • 一个可执行程序(通常是.exe,但有时也带有其他扩展);
  • 批处理文件(.bat.cmd);或
  • 内部命令,由cmd代码本身处理。

Explorer 和 Windows 运行命令 ( Win+ r) 以不同的方式处理这些内容:-

  • 可执行文件被识别为可执行文件并立即运行。
  • 批处理文件的扩展名被识别为链接到cmd,并计划运行它。
  • Windows 无法识别cmd(或任何其他交互式程序)的内部命令,因此在运行命令框中输入其中一个命令将出现“无法找到”错误。

内部cmd命令可以从运行框执行,但您需要告诉 Windowscmd明确运行。对于您的命令,您可以输入:

cmd /c start .

请注意,这将使用当前目录作为运行命令环境,而不是 中的目录cmd,后者默认从您的主目录中启动。

帮助列表中的大多数命令cmd都是内部的,但也有少数命令,例如findsortdiskpart是外部程序(find.exe,等等),因此不需要cmd /c在运行框中将这些命令放在前面:Windows 会将它们识别为命令行实用程序并创建一个命令 shell 来运行它们。

每当cmd计划运行一个命令(明确或显式)时,除非该命令与用户交互,否则它将是短暂的,尽管在其执行期间启动的任何其他程序都可能持续存在(与命令一样start)。

答案3

弥补(几乎详尽的)遗漏AFH 的回答:在 Windows 运行对话框中(通过Win+调用r),句号.将完全按照建议的方式工作cmd /c start .

但是,我没有测试.在这种情况下使用cmdcmd /D默认的不同工作目录的确切行为,即如果后者被注册表中的 AutoRun 命令更改;有关详细信息,请参阅cmd /?

相关内容