在命令提示符下,如果我输入以下命令:
start .
然后它只是打开当前用户的目录C:\Users<当前用户名>在 Windows 7 中。但此命令在 Windows 运行提示符下不起作用。如果存在可直接从运行提示符打开当前用户目录的命令,有人能帮我吗?目前我必须先打开命令提示符,然后键入此命令以在 Windows 资源管理器中打开所需的目录。
更新: 我意识到开始 。命令提示符中的命令并不总是打开用户的主配置文件目录。只有当 shell 提示符中的当前工作目录与当前用户的主配置文件目录相同时,才会发生这种情况。所以,如果我在目录:\在我的 shell 提示符下它就会打开目录:\在资源管理器中代替C:\users<当前用户名>
答案1
答案2
该start
命令是 的内部命令cmd
。当您在 中输入命令时cmd
,它将是:
- 一个可执行程序(通常是
.exe
,但有时也带有其他扩展); - 批处理文件(
.bat
或.cmd
);或 - 内部命令,由
cmd
代码本身处理。
Explorer 和 Windows 运行命令 ( Win+ r) 以不同的方式处理这些内容:-
- 可执行文件被识别为可执行文件并立即运行。
- 批处理文件的扩展名被识别为链接到
cmd
,并计划运行它。 - Windows 无法识别
cmd
(或任何其他交互式程序)的内部命令,因此在运行命令框中输入其中一个命令将出现“无法找到”错误。
内部cmd
命令能可以从运行框执行,但您需要告诉 Windowscmd
明确运行。对于您的命令,您可以输入:
cmd /c start .
请注意,这将使用当前目录作为运行命令环境,而不是 中的目录cmd
,后者默认从您的主目录中启动。
帮助列表中的大多数命令cmd
都是内部的,但也有少数命令,例如find
,sort
和diskpart
是外部程序(find.exe
,等等),因此不需要cmd /c
在运行框中将这些命令放在前面:Windows 会将它们识别为命令行实用程序并创建一个命令 shell 来运行它们。
每当cmd
计划运行一个命令(明确或显式)时,除非该命令与用户交互,否则它将是短暂的,尽管在其执行期间启动的任何其他程序都可能持续存在(与命令一样start
)。
答案3
弥补(几乎详尽的)遗漏AFH 的回答:在 Windows 运行对话框中(通过Win+调用r),句号.
将完全按照建议的方式工作cmd /c start .
但是,我没有测试.
在这种情况下使用cmd
和cmd /D
默认的不同工作目录的确切行为,即如果后者被注册表中的 AutoRun 命令更改;有关详细信息,请参阅cmd /?
。