注册表:Shell 打开命令 - 打开多个程序

pat*_*pat 5 windows windows-registry shell command-line cmd.exe

我试图通过注册表注册一个shell打开命令,并想打开多个程序,所以我这样试过:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\myFile\Shell\Open\Command]
@="cmd /k calc & notepad & exit"
Run Code Online (Sandbox Code Playgroud)

calc并且notepad只是一个例子来证明它。

如果我这样使用它,计算器和记事本都打开了,但命令提示符仍然打开,直到我关闭记事本。如果我将其更改为cmd /k calc & calc & exit,则会得到 2 个计算器实例,并且命令提示符会根据需要关闭。

为什么它不能与记事本一起使用?

有人知道另一种在注册表中使用 shell open 命令启动多个程序而不让命令提示符保持打开状态的方法吗?

Wor*_*lle 2

您可以使用以下命令来完成此操作:

cmd /k start calc & start notepad & exit
Run Code Online (Sandbox Code Playgroud)

因此将你的.reg文件变成:

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\myFile\Shell\Open\Command]
@="cmd /k start calc & start notepad & exit"
Run Code Online (Sandbox Code Playgroud)

工作正常(在 Windows 10 中,但在 Windows 7 中不行)的原因calc是该calc.exe进程启动了另一个进程 ( Calculator.exe),然后退出,从而允许命令继续执行。

对于 来说情况并非如此notepad.exe,这意味着该命令卡在那里等待notepad.exe关闭。

start命令用于在单独的窗口中启动进程,以便cmd可以继续下一步。