我正在尝试设置新的适用于 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"
,我无法找到正确打开最大化的命令。我搜索并找到了一些关于它的线索:
- 最大化 Windows 命令提示符
- 为什么 Windows 命令提示符窗口不能最大化到全屏大小?
- 将 Windows 10 上的 Ubuntu 上的 Bash 添加到资源管理器上下文菜单(问题)
- 我如何才能最小化启动 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"