我的主要问题如下:
- 什么是“跑步“从 Windows 的角度来看命令?
- 如何实现自动化跑步“命令?
- 是 ”跑步“类似于Windows资源管理器的地址栏?
你们很多人可能已经注意到,你必须点击几次才能进入 Windows 10 中的控制面板的声音属性菜单。
- 而不必在设置 - 声音:
右键单击任务栏扬声器图标>声音设置>设置:声音 - 你可以(其中
option
是0
,,1
,2
或者3
对于该菜单中的每个选项卡):
WinKey+ R>mmsys.cpl
||control mmsys.cpl,,[option]
这让我想到如何通过在任务栏上创建批处理来自动化上述操作(例子),但我不确定要使用什么命令。您可以轻松运行脚本在批处理文件中,但这不是一回事,我找不到如何制作一个在“跑步“(如cmd
、、、、等等)sysedit
regedit
msconfig
答案1
LPChip 的出色回答解决了如何从批处理文件中执行所需的操作,但您也可以创建桌面快捷方式来运行与您在“运行...”对话框中键入的命令完全相同的命令:
- 右键单击桌面并选择新建->快捷方式。
- 按照“运行...”对话框中的提示“输入项目的位置:”的方式输入命令。要运行问题中的示例,您可以输入
control mmsys.cpl,,2
。单击“下一步”。 - 如果需要,请更改快捷方式的名称,然后单击“完成”。
“Run...” 的作用是什么
如果您想要一个关于“运行...”对话框功能的更“技术性”的答案,它会调用系统 API 函数(最有可能ShellExecuteEx
),该函数大致执行以下操作:
- 解析文件关联,因此如果您给它的路径不是可执行文件而是文档(例如,jpeg 图像或 word 文档),它就知道用哪个程序打开文档。
- 解析并使用环境变量,例如
PATH
或HOMEPATH
。如果您%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 脚本中。现在您要做的就是让脚本响应某些触发事件而运行。