“Run...” 的作用是什么

“Run...” 的作用是什么

我的主要问题如下:

  1. 什么是“跑步“从 Windows 的角度来看命令?
  2. 如何实现自动化跑步“命令?
  3. 是 ”跑步“类似于Windows资源管理器的地址栏?


你们很多人可能已经注意到,你必须点击几次才能进入 Windows 10 中的控制面板的声音属性菜单。

  • 而不必在设置 - 声音
    右键单击任务栏扬声器图标>声音设置>设置:声音
  • 你可以(其中option0,,12或者3对于该菜单中的每个选项卡)
    WinKey+ R> mmsys.cpl||control mmsys.cpl,,[option]

这让我想到如何通过在任务栏上创建批处理来自动化上述操作例子,但我不确定要使用什么命令。您可以轻松运行脚本在批处理文件中,但这不是一回事,我找不到如何制作一个在“跑步(如cmd、、、、等等)syseditregeditmsconfig

答案1

LPChip 的出色回答解决了如何从批处理文件中执行所需的操作,但您也可以创建桌面快捷方式来运行与您在“运行...”对话框中键入的命令完全相同的命令:

  1. 右键单击桌面并选择新建->快捷方式。
  2. 按照“运行...”对话框中的提示“输入项目的位置:”的方式输入命令。要运行问题中的示例,您可以输入control mmsys.cpl,,2。单击“下一步”。
  3. 如果需要,请更改快捷方式的名称,然后单击“完成”。

为命令创建快捷方式

“Run...” 的作用是什么

如果您想要一个关于“运行...”对话框功能的更“技术性”的答案,它会调用系统 API 函数(最有可能ShellExecuteEx),该函数大致执行以下操作:

  • 解析文件关联,因此如果您给它的路径不是可执行文件而是文档(例如,jpeg 图像或 word 文档),它就知道用哪个程序打开文档。
  • 解析并使用环境变量,例如PATHHOMEPATH。如果您%HOMEPATH%在“运行...”对话框中输入 ,它将打开用户的配置文件文件夹。 和PATH是一个特殊的系统环境变量,其中包含 Windows 将尝试查找程序的默认位置列表。这就是为什么您可以只输入control而不使用 的完整路径control.exe(即C:\Windows\System32\control.exe)。
  • 正如@IMSoP 在评论中提到的那样,除了PATH环境变量之外,检查可执行路径的另一个地方是注册表。更具体地说,HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths是系统范围的路径,以及HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\App Paths特定于当前用户的路径。
  • 将附加命令行参数传递给程序。在您的示例中control mmsys.cpl,,[option]control是运行的文件,mmsys.cpl,,[option]是命令行参数。

似乎您的假设是正确的,地址栏会执行相同的操作,只是它会尝试导航到该路径(如果它是可以显示的文件夹)。

命令行命令start来自LPChip 的答案cmd是在批处理脚本中执行相同操作的方法。

打开快捷方式也大致具有相同的功能。

对于那些对正在发生的事情的完整情况感兴趣的人,我建议阅读这篇文章MSDN上关于应用程序注册,全面概述了它的工作原理。

答案2

批处理文件只是与您在命令提示符中输入的内容类似的指令列表。

在命令提示符中,您只需输入文件名即可运行 .exe 或 .com 格式的应用程序。

例如,如果当前文件夹中有文件 example.exe,则只需example在命令提示符中键入即可启动该文件。也可以在批处理文件中执行相同操作。

只需放置example一行即可启动该文件。

但是当您有一个没有 .exe 或 .com 扩展名的文件时,运行对话框仍会启动它,但如果您只是输入文件的名称,命令提示符就不会启动它。

因此,从运行对话框mmsys.cpl可以工作,但在命令提示符中则不行。

原因是 Explorer 能够理解文件关联,而命令提示符却不能。因此,为了弥补这一点,微软添加了命令start

如果您输入start filename.ext命令提示符,则该文件将使用资源管理器的引擎运行,因此与该文件扩展名相关联的任何内容都将启动该文件。.cpl直接与资源管理器关联以打开控制面板的对话框。

因此,在批处理文件中,您只需输入:

start mmsys.cpl

如果你开始思考,是的,你可以直接从命令提示符启动一个 word 文档,输入start "My Awesome Worddocument.docx"

答案3

您需要的是 powershell 中的 start-process 命令。请考虑以下内容,其中 start 用作 start-process 的别名。

PS> start excel
PS> start myfile.docx
PS> start http://www.website.com

在第一种情况下,命令会命名要运行的程序。在第二种情况下,命令会命名一个文件,然后 Windows 使用注册表来发现相应的程序。在第三种情况下,命令会命名一个 URL,然后 Windows 会运行一个浏览器。

Powershell 即将取代批处理和 DOS 命令。您可以将这些命令放入 powershell 脚本中。现在您要做的就是让脚本响应某些触发事件而运行。

相关内容