如何从资源管理器上下文菜单最大化打开“cmd.exe”?

如何从资源管理器上下文菜单最大化打开“cmd.exe”?

我正在尝试设置新的适用于 Linux 的 Windows 子系统 (WSL) 以从上下文菜单打开:

在此处输入图片描述

到目前为止,我遵循了http://winaero.com/blog/add-bash-to-the-folder-context-menu-in-windows-10/,并能够像上图一样添加它。该过程基本上是设置以下 Windows 注册表:

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\openbashhere]
@="Open Bash Here"
"Icon"=hex(2):25,00,55,00,53,00,45,00,52,00,50,00,52,00,4f,00,46,00,49,00,4c,\
  00,45,00,25,00,5c,00,41,00,70,00,70,00,44,00,61,00,74,00,61,00,5c,00,4c,00,\
  6f,00,63,00,61,00,6c,00,5c,00,6c,00,78,00,73,00,73,00,5c,00,62,00,61,00,73,\
  00,68,00,2e,00,69,00,63,00,6f,00,00,00

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\openbashhere\command]
@="cmd.exe /c cd /d \"%V\" && bash.exe"

问题出在行上"cmd.exe /c cd /d \"%V\" && bash.exe",我无法找到正确打开最大化的命令。我搜索并找到了一些关于它的线索:

  1. 最大化 Windows 命令提示符
  2. 为什么 Windows 命令提示符窗口不能最大化到全屏大小?
  3. 将 Windows 10 上的 Ubuntu 上的 Bash 添加到资源管理器上下文菜单(问题)
  4. 我如何才能最小化启动 cmd.exe?

我尝试做了这个棘手的玩法:

cmd.exe /c start /max cmd.exe

如果我在运行对话框中输入它,它就会起作用:

在此处输入图片描述

但是如果我尝试将它放在上面的注册表项中,它不会最大化打开它:

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\openbashhere\command]
@="cmd.exe /c start /max cmd.exe /c cd /d \"%V\" && bash.exe"

后来我还尝试了另一个肮脏的伎俩,使用 的快捷方式"C:\ProgramData\Microsoft\Windows\Start Menu\cmd.exe.lnk",打开 cmd maximixed,但是当我把它放在 的位置时cmd.exe

[HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\openbashhere\command]
@="\"C:\ProgramData\Microsoft\Windows\Start Menu\cmd.exe.lnk\" /c cd /d \"%V\" && bash.exe"

Windows 抛出此错误:

在此处输入图片描述

答案1

阅读有关&&命令分隔符

commandA && commandB             运行commandA,如果成功则运行 commandB

在你的@="cmd.exe /c start /max cmd.exe /c cd /d \"%V\" && bash.exe"

  • commandA=start /max cmd.exe /c cd /d \"%V\"
  • commandB=bash.exe

因此,bash.exe从第一个/外部实例启动cmd /c(通常未最大化)。

此外,阅读标题指挥start

使用转义符号

@="cmd.exe /c start \"\" /max cmd.exe /c cd /d \"%V\" ^&^& bash.exe"

或者也许更好cmd /c完全省略内部)

@="cmd.exe /c cd /d \"%V\" && start \"\" /max bash.exe"

相关内容