Finalmente una respuesta que es independiente del propio Cygwin.
Esto utiliza el hecho de que, si estoy en el directorio C:\\Cool
y llamar al comando C:\\Cygwin\\bin\\mintty.exe
, mintty
se abrirá automáticamente en el directorio actual, es decir, C:\\Cool
.
Primero, deberá crear el archivo C:\\Cygwin\\silent_run.vbs
con 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:\\Cygwin
a la ubicación real donde está instalada su instalación Cygwin.
Luego, simplemente abra el archivo C:\\Cygwin\\AddMinttyToContextMenu.reg
para instalar sus nuevas entradas de registro y listo.
El archivo C:\\Cygwin\\AddMinttyToContextMenu.reg
funciona abriendo primero a cmd.exe
, cambiando al directorio en el que se encuentra y luego llamando C:\\Cygwin\\silent_run.vbs
para abrir el C:\\Cygwin\\bin\\mintty.exe
terminal con las opciones de línea de comando -w max
, es decir, para abrirlo al máximo.
Se C:\\Cygwin\\silent_run.vbs
requiere el script para abrir el C:\\Cygwin\\bin\\mintty.exe
terminal sin mantener cmd.exe
abierto el primero que abrimos.
La primera entrada de C:\\Cygwin\\AddMinttyToContextMenu.reg
no se usa C:\\Cygwin\\silent_run.vbs
porque, de forma predeterminada, las HKEY_CLASSES_ROOT\Directory\Background\shell
claves ya están abiertas en el directorio actual, entonces, podemos llamar C:\\Cygwin\\bin\\mintty.exe
directamente 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)?