我正在尝试通过注册表注册一个 shell 打开命令,并想打开多个程序,因此我尝试这样做:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\myFile\Shell\Open\Command]
@="cmd /k calc & notepad & exit"
calc
这notepad
只是一个例子来证明这一点。
如果我这样使用它,计算器和记事本都会打开,但命令提示符仍会打开,直到我关闭记事本。如果我将其更改为cmd /k calc & calc & exit
,我会得到 2 个计算器实例,并且命令提示符会按照我的意愿关闭。
为什么它不能与记事本一起使用?
是否有人知道另一种方法,可以使用注册表中的 shell open 命令启动多个程序,而无需命令提示符保持打开状态?
答案1
您可以使用以下命令来执行此操作:
cmd /k start calc & start notepad & exit
因此将您的.reg
文件变成:
[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\myFile\Shell\Open\Command]
@="cmd /k start calc & start notepad & exit"
运行良好的原因calc
(在 Windows 10 中,但在 Windows 7 中不行)是该calc.exe
过程启动了一个不同的进程(Calculator.exe
)然后退出,从而允许命令继续执行。
但对于 来说情况并非如此notepad.exe
,这意味着命令会卡在那里等待notepad.exe
关闭。
这start
命令用于在单独的窗口中启动一个进程,以便cmd
可以继续下一步。