Como abrir 'cmd.exe' maximizado no menu de contexto do explorer?

0

Estou tentando configurar o novo Windows Subsystem para Linux (WSL) para abrir a partir do menu de contexto:

Atéagoraeuseguiotutorialno link , e foi capaz de adicioná-lo como na imagem acima. O processo é basicamente definir o seguinte registro do 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"

Aqui o problema é a linha "cmd.exe /c cd /d \"%V\" && bash.exe" , não consegui descobrir um comando para abri-lo corretamente maximizado. Eu procurei e encontrei alguns tópicos sobre isso:

  1. maximizando o prompt de comando do windows
  2. Por que o doesn ' a janela de prompt de comando do Windows maximiza o tamanho da tela inteira?
  3. Adicionando Bash no Ubuntu em Menu de contexto do Windows 10 para o Explorer (problemas)
  4. Como posso iniciar o cmd.exe minimizado?

Eu tentei fazer esse jogo complicado:

cmd.exe /c start /max cmd.exe

Funciona se eu digitá-lo na caixa de diálogo Executar:

Masseeutentarcolocá-lonaentradaderegistroacima,elenãoserámaximizado:

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

Mais tarde, também tentei outro truque sujo com um atalho para "C:\ProgramData\Microsoft\Windows\Start Menu\cmd.exe.lnk" , que abre o cmd maximixed, mas quando eu o coloco no lugar do 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"

O Windows lança este erro:

    
por user 17.07.2017 / 07:04

1 resposta

1

Leia sobre o separador de comandos && :

commandA && commandB             Run commandA, if it succeeds then run commandB

No seu @="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

Assim, bash.exe é lançado a partir da primeira / outer cmd /c instance (geralmente não maximizada).

Além disso, leia sobre o título no comando start .

Use ( escape de e comercial )

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

ou, talvez melhor (omitir interior cmd /c )

@="cmd.exe /c cd /d \"%V\" && start \"\" /max bash.exe"
    
por 01.06.2018 / 09:31