我经常发现自己需要在提升的 cmd shell 中运行 msys2 中的命令。如何才能从 msys2 最快地在当前目录中打开提升的 cmd?
我试过这个答案:https://stackoverflow.com/questions/19098101/how-to-open-an-elevated-cmd-using-command-line-for-windows,但它似乎无法从 msys2 运行,出现以下错误:
答案1
尝试这个:
- 将 MSYS shell 启动器设置为默认以管理员身份打开
- 设置 cmd 默认以管理员身份打开
在 MSYS shell 中使用命令
/bin/start cmd
它应该打开以管理员身份打开 cmd 窗口在 MSYS shell 所在目录中没有提示符
你仍然需要查看提示以管理员身份打开 MSYS shell,然后cmd 窗口不会获得焦点(这两件事可能非常烦人,但总比没有好)。
我还没有检查,但您可以尝试上述步骤,而无需强制在 MSYS shell 上打开管理员,而只需在 cmd 上打开(这样您就不必查看管理员提示符)。
可选提示:
由于您说您经常从 msys2 shell 使用 cmd,因此您可以在 bash 启动文件(如.bashrc
)中编写一个函数来像这样包装命令
opencmd()
{
/bin/start cmd
}
因此您只需opencmd
在 shell 内部输入即可。
编辑:
1)你实际上需要强制打开管理员仅 MSYS 外壳该命令将以管理员身份打开 cmd
2)我尝试了以下步骤另一台机器然后,使用以下命令打开 cmd:cmd 窗口已正确聚焦(虽然我仍然不知道为什么在另一台机器上窗口没有聚焦)
3)除了上面建议的命令之外,您还可以直接cmd
在 MSYS shell 中输入,它将以管理员身份在 shell 中打开 cmd(如果您强制以管理员身份打开 MSYS shell),但我注意到
- 在 cmd 中输入的命令在执行之前会再回显一次
- 光标可以在 shell 内自由移动,导致奇怪的行为
所以如果你决定使用这个解决方案,一定要小心
编辑2:
如果你需要从 cmd 执行 1 条命令并返回到 MSYS shell,您只需输入
cmd //c your_command
在 MSYS shell 内部
如果你需要执行 1 条命令,然后您需要停留在 MSYS shell 中的 cmd 中,您只需输入
cmd //k your_command
在 MSYS shell 内部
(记得使用 //)
资料来源:
如何从 msys shell 运行内部 cmd 命令?
https://ss64.com/nt/cmd.html