在当前目录中从 msys 打开提升的 cmd

在当前目录中从 msys 打开提升的 cmd

我经常发现自己需要在提升的 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

相关内容