Finalmente una respuesta que es independiente del propio Cygwin.
Esto utiliza el hecho de que, si estoy en el directorio C:\\Cooly llamar al comando C:\\Cygwin\\bin\\mintty.exe, minttyse abrirá automáticamente en el directorio actual, es decir, C:\\Cool.
Primero, deberá crear el archivo C:\\Cygwin\\silent_run.vbscon los siguientes contenidos:
Function EnquoteString(argument)
EnquoteString = Chr(34) & argument & Chr(34)
End Function
arglist = ""
With WScript.Arguments
For Each arg In .Unnamed
' Wscript.Echo "Unnamed: " & arg
If InStr(arg, " ") > 0 Then
' arg contains a space
arglist = arglist & " " & EnquoteString(arg)
Else
arglist = arglist & " " & arg
End If
Next
End With
CreateObject("Wscript.Shell").Run Trim( arglist ), 0, False
Luego, para instalar esta respuesta, utilizará un archivo de Registro de Windows. Para eso, simplemente coloque el contenido del siguiente archivo en un archivo llamadoC:\\Cygwin\\AddMinttyToContextMenu.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020
[HKEY_CLASSES_ROOT\Directory\Background\shell\Terminal Here\Command]
@="\"C:\\Cygwin\\bin\\mintty.exe\" -w max"
[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here]
"Icon"="\"C:\\Cygwin\\bin\\mintty.exe\""
"Position"="Middle"
@="Terminal Here"
"CommandFlags"=dword:00000020
[HKEY_CLASSES_ROOT\Directory\shell\Terminal Here\Command]
@="cmd.exe /c cd /d \"%V\" && wscript \"C:\\Cygwin\\silent_run.vbs\" \"C:\\Cygwin\\bin\\mintty.exe\" -w max"
Ahora, corrija todas las rutas codificadas, es decir, C:\\Cygwina la ubicación real donde está instalada su instalación Cygwin.
Luego, simplemente abra el archivo C:\\Cygwin\\AddMinttyToContextMenu.regpara instalar sus nuevas entradas de registro y listo.
El archivo C:\\Cygwin\\AddMinttyToContextMenu.regfunciona abriendo primero a cmd.exe, cambiando al directorio en el que se encuentra y luego llamando C:\\Cygwin\\silent_run.vbspara abrir el C:\\Cygwin\\bin\\mintty.exeterminal con las opciones de línea de comando -w max, es decir, para abrirlo al máximo.
Se C:\\Cygwin\\silent_run.vbsrequiere el script para abrir el C:\\Cygwin\\bin\\mintty.exeterminal sin mantener cmd.exeabierto el primero que abrimos.
La primera entrada de C:\\Cygwin\\AddMinttyToContextMenu.regno se usa C:\\Cygwin\\silent_run.vbsporque, de forma predeterminada, las HKEY_CLASSES_ROOT\Directory\Background\shellclaves ya están abiertas en el directorio actual, entonces, podemos llamar C:\\Cygwin\\bin\\mintty.exedirectamente para que funcione de inmediato.
Referencias
- Cómo agregar un elemento del menú contextual al Explorador de Windows para carpetas
- VBScript pasar argumento de línea de comandos en rutas con espacios
- ¿Cómo pasar un comando con espacios y comillas como parámetro único a CScript?
- llamando a vbscript desde otro archivo vbscript pasando argumentos
- https://ss64.com/vb/syntax-args.html
- Compruebe si la cadena contiene espacio
- ¿Ejecuta la línea de comandos en silencio con VbScript y obtiene resultados?
- http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
- /superuser/62525/run-a-batch-file-in-a-completely-hidden-way
- ¿Cómo ejecutar el script Batch recibido como argumento en VBscript?
- ¿Puedo pasar un argumento a un VBScript (archivo vbs lanzado con cscript)?