Abra Cygwin en una carpeta específica

226

¿Cómo puedo crear un acceso directo de Cygwin que abra Cygwin en una carpeta específica? Esto evitaría tener que escribir

cd /cygdrive/c/Users/Tom/Desktop/

cada vez que lanzo Cygwin.

Randomblue
fuente
2
crear un archivo .bat: aquí hay un tutorial computerhope.com/batch.htm
Umar Jamil
Nota: es posible que el paquete chere deba ser instanciado con privilegios de administrador. Si esto lo atrapa y siente la tentación de usarlo sudo, es posible que no obtenga el resultado esperado. En este caso, inicie sesión como usuario administrador en la máquina Windows.
dreftymac

Respuestas:

410

Cuando instale Cygwin (o si ya lo ha instalado, descárguelo nuevamente y comience la configuración nuevamente para ejecutar una actualización), asegúrese de seleccionar el cherepaquete en la categoría "Shells".

Después se puso en marcha Cygwin, abre un terminal de Cygwin (como administrador) y escriba el comando: chere -i -t mintty -s bash.

Ahora debería tener "Bash Prompt Here" en el menú contextual del botón derecho de Windows.

( Mintty es el terminal predeterminado de Cygwin. Si no lo elige con la -topción, su "Bash Prompt Here" usará el mismo terminal que el símbolo del sistema de Windows, lo que evita el cambio de tamaño horizontal).

two7s_clash
fuente
39
Impresionante hallazgo, gracias! Descubrí que puede especificar el terminal que desea abrir usando -t, por ejemplo, para abrir mintty que usachere -i -t mintty
Kevin Condon
29
Acabo de probar con 64 bits cygwin (1.7.27) y parece que ahora existe chere. consejo profesional: recuerde iniciar el terminal cygwin con privilegios de administrador.
BuildTheRobots
11
Una cosa más a tener en cuenta. Si ya hiciste esto chere -i -t mintty -fpara forzar la sobrescritura. También necesitará ejecutar cygwin como administrador también.
Greg Jennings
29
Hubo problemas de permisos en W7x64 (Error (5): acceso denegado. Hive no se puede escribir). Se resolvió iniciando Cygwin como administrador.
DmitrySandalov
17
Cygwin no tenía un shell predeterminado en mi caso, por lo que agregar -s bashpara hacer chere -i -t mintty -s bashesto funcionó para mí
Bryce Guinta
97

Esto es lo que uso. No requiere chereajustes de paquete o registro. Funciona en Windows 7.

Vaya a su carpeta "Enviar a":

C:\Users\<your_user_name>\AppData\Roaming\Microsoft\Windows\SendTo

Cree un acceso directo llamado Bash Heretener esto en el Targetcampo:

C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico  C:\cygwin\bin\bash.exe  -l -c "cd \"$0\" ; exec bash"

En el Explorador de Windows, hace clic derecho en una carpeta y selecciona Send To > Bash Here.

Y aquí está el truco opuesto, abrir un Explorador de Windows en su directorio bash actual. Crea este alias:

alias winx='/cygdrive/c/Windows/explorer.exe /e,\`cygpath -w .\`'

Nota: la cygpath -w .parte de arriba está encerrada en tics.

Ahora solo escriba winxen el indicador de bash, y aparecerá un Win Explorer allí.

Nota: si winx lo dirige a su carpeta de documentos, intente

alias winx='/cygdrive/c/Windows/explorer.exe /e,`cygpath -w $PWD`'
LindseyD
fuente
3
Muy buen truco, pero el winxalias no funcionó en mi configuración de Cygwin. Tuve que quitar las dos barras invertidas y reemplazar .con $PWDpara que funcione.
not2qubit
¿Qué sucede si el acceso directo (adaptado para usar la ruta Cygwin64 de mi instalación) abre cygwin en mi carpeta de usuario? :( ¿Tal vez esto solo funciona con Cygwin de 32 bits?
Alex Hall
Este también está funcionando para míalias winx='/cygdrive/c/Windows/explorer.exe /e,$(cygpath -wa .)'
Wakan Tanka
1
En cygwin 2.6.0 (en Win 7 x64) se puede hacer mucho más fácil: cygstart .abrir Explorer con la carpeta actual, o cualquier sintaxis de carpeta cygstart .., cygstart /your/pathetc ...
244an
2
Advertencia: C:\cygwin\bin\mintty.exe -i /Cygwin-Terminal.ico C:\cygwin\bin\bash.exe -l -c "cd \"$0\" ; exec bashmantiene el identificador de archivo abierto en el $0directorio, incluso después de cambiar el directorio de trabajo a otra cosa. Lo que es peor, la copia de generación de la ventana ( ALT+F2), incluso cuando ya ha cambiado el directorio de trabajo, abre otro identificador de archivo $0. Esto puede interferir con algunas operaciones que pueden querer eliminar / modificar $0en cualquier proceso. Si obtiene el error 'Permiso denegado' al acceder, $0esta podría ser la causa
mate
33

Desde el terminal cygwin, ejecute este comando:

echo "cd your_path" >> ~/.bashrc

El script .bashrc se ejecuta cuando abre una nueva sesión de bash. El código anterior con cambio en el directorio your_path cuando abre una nueva sesión de cygwin.

bschwagg
fuente
3
¡ESTA ES LA RESPUESTA! TAN FÁCIL.
Devin Walker
Si ! Eso es fácil ! Vota arriba !
Alex Byrth
19
Esta no es la respuesta, ya que no crea un acceso directo que use dicho directorio, como lo requiere la pregunta, cambia el comportamiento de todos los métodos para iniciar el shell Cygwin. No debe cambiar una configuración global (o perfil de inicio de sesión) para resolver un problema local.
Ben Voigt
Una vez utilicé exactamente este método para agregar un usuario al archivo de contraseña, dejando accidentalmente uno de los >caracteres. Luego me desconecté :-)
paxdiablo
@paxdiablo ouch
bschwagg
30

Creé un archivo .reg que pone la opción "Abrir Cygwin aquí" en el menú contextual del botón derecho. Depende del paquete "chere" de Cygwin, que puede instalar utilizando apt-cyg si no lo instaló en la configuración inicial.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"
John Peter Thompson Garcés
fuente
77
Para aquellos que se preguntan cómo usar esto, simplemente copie el texto de fondo gris y póngalo en un archivo de texto llamado "foo.reg" y haga doble clic en él.
Andrew Moylan
3
+1 la mejor solución aquí. Y gracias por mencionar apt-cygque no conocía esta herramienta
user11153
Esto era exactamente lo que estaba buscando, e incluso me ayudó con otras cosas porque incluso el sitio de Microsoft no me dio el mismo resultado.
FilBot3
Tuve que cambiar a "cygwin" pero recibo este error: "Error al ejecutar / bin / xhere: No existe tal archivo o directorio"
Totty.js
@ Totty.js ¿estás seguro de que has instalado el paquete 'chere' en Cygwin?
Jeutnarg
17

Para cygwin64 o instalaciones sin chere, puede usar el siguiente comando en una entrada del registro (suponiendo que Windows se debe a su ruta, también suponiendo que el directorio de instalación de cygwin es c: \ cygwin64)

C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd "`cygpath "%V"`"; bash'

Funciona en el archivo de registro de Windows 7 y 8 disponible para descargar aquí: http://tomkay.me/blog/Cygwin64---Open-Here-18

Windows Registry Editor Version 5.00
; Open cygwin to folder
; http://tomkay.me - Tom Kay

[HKEY_CLASSES_ROOT\Folder\shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Folder\shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"

[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\open_cygwin\command]
@="C:\\cygwin64\\bin\\mintty.exe /bin/sh -lc 'cd \"`cygpath \"%V\"`\"; bash'"
Tom Kay
fuente
¿Puede explicar por qué tiene 3 (x2) entradas de registro?
not2qubit
1
son para contextos de directorio, unidad y fondo
Tom Kay
Finalmente, una solución que funcionó para mí, aunque tengo algunos problemas para entenderla por completo ;-) [el 'bash' después de 'exec bash']. Sugerencia: puede reemplazar las 3 entradas con 1: 'Carpeta' en lugar de 'Directorio', 'Unidad' y 'Fondo'.
t0r0X
con solo 'Carpeta', el enlace aparece en el menú contextual de una unidad, pero no se ejecuta. Sin embargo, he podido reducir a 2 entradas con 'Carpeta' y 'Directorio \ Fondo'
Tom Kay
1
Para emacs: "C: \\ cygwin \\ bin \\ mintty.exe -i /Cygwin-Terminal.ico / bin / bash -l -c 'emacs \" cygpath \"%V\"\ ";'"
Jan Matousek el
12

Si desea tener ese directorio como predeterminado, simplemente agregue una cddeclaración a su~/.profile archivo.

Lo que tiendo a hacer es usar ese método para establecer mi directorio habitual, además de definir alias para mis casos comunes también:

alias tom="cd /users/tom"

o tu equivalente. Esto me permite cambiar directorios muy rápido.

paxdiablo
fuente
¿Ese alias también debe agregarse al ~/.profilearchivo, o simplemente ejecutarse una vez?
iono
2
@tomeoftom, si solo ejecuta eso dentro de un shell, solo afectará a ese shell. No afectará a otros que comiences. Por lo tanto, si desea que esté siempre disponible, debe ponerlo en uno de sus archivos de inicio (de los cuales ~/.profilees una posibilidad).
paxdiablo
no funcionó para mí cuando lo puse en ~ / .profile, pero ~ / .bashrc funcionó.
zupa
@zupa, las reglas sobre qué archivos de inicio se obtienen son razonablemente complicados (aunque todo está en la bashpágina del manual si profundiza lo suficiente). Es por eso que dije .profilecomo una posibilidad.
paxdiablo
.profile finalmente obtiene .bashrc, por lo que es posible que desee agregar ese comando a bashrc. (.profile no funcionó para mí)
laertis
8

Uso e Icon para iniciar mi cygwin sin el cherepaquete.

  1. Crear un acceso directo en mi escritorio para el terminal cygwin.
  2. Haga clic con el botón derecho en el icono y seleccione propiedades.
  3. En la pestaña de acceso directo, use esto para el OBJETIVO: C:\cygwin64\bin\mintty.exe -i /Cygwin-Terminal.ico -c 'cd'
  4. Para INICIAR, coloque la ruta del directorio / carpeta donde desea iniciar cygwin. es decirC:\some\dir\name\here
Doug
fuente
ok 2 cosas 1. agregar -cen "Destino" no hace ninguna diferencia siempre que proporcione una ruta en "Iniciar en" 2. esta solución crea un problema con PATH. cygwin no puede anteponerse /usr/local/bin:/usr/binen la RUTA del sistema, dejando incapaz de invocar algunos de sus binarios. La configuración probablemente reside en /etc/profile>> `if [$ {CYGWIN_NOWINPATH-addwinpath} =" addwinpath "]; entonces `
laertis
8

Como dijo two7s_clash, primero debe instalar el cherepaquete y configurar mintty:

  1. Abra la terminal Cygwin como administrador
  2. apt-cyg install chere
  3. chere -i -t mintty

Ahora puede abrir cygwin en un directorio específico con un clic derecho del mouse en el Explorador de Windows (Menú contextual) y seleccione "Bash Solicitar aquí".

También puede abrir cygwin desde un directorio específico utilizando el símbolo del sistema de Windows:

  1. Abrir símbolo del sistema de Windows
  2. Navegar (cd ) al directorio personalizado
  3. Ejecutar C:\cygwin64\bin\mintty.exe C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

    Este comando abrirá cygwin con el directorio actual tomado del símbolo del sistema.

FreeCommander

Este comando también se puede usar para abrir cygwin desde el administrador de archivos personalizado, como FreeCommander.

Para abrir cygwin con el directorio actual tomado de FreeCommander, haga lo siguiente:

  1. Herramientas -> Herramientas favoritas -> Herramientas favoritas editar ... (Ctrl + Shift + Y)
  2. Agregar una nueva barra de herramientas (+ icono), acceso directo: insertar

    • Nombre: cygwin
    • Programa o carpeta: C:\cygwin64\bin\mintty.exe
    • Carpeta de inicio: %ActivDir%
    • Parámetro: C:\cygwin64\bin\env.exe CHERE_INVOKING=1 C:\cygwin64\bin\bash.exe -l

Puede agregar un acceso directo personalizado para abrir cygwin desde FreeCommander:

  1. Herramientas -> Definir atajos de teclado
  2. Desplácese hacia abajo hasta "Herramienta favorita 01" (o "Herramienta favorita N")
  3. Asignar nueva tecla de acceso directo: uso Ctrl+ Shift+T

Gran referencia: MinTTY Wiki, artículo Consejos: Comenzando en un directorio particular

nexayq
fuente
5

Para crear un acceso directo de Windows que inicie un terminal Cygwin en un directorio de su elección, intente lo siguiente:

  • Haga clic con el botón derecho en el escritorio de Windows, seleccione 'Nuevo' y luego seleccione 'Acceso directo'.

  • Para la ubicación del elemento, ingrese el siguiente texto, cambiando la minttyruta según sea necesario y sustituyendo el nombre del directorio deseado donde se indica.

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd DESIRED-DIRECTORY; exec bash'
    

    Por ejemplo, el OP usaría el siguiente texto:

    C:\cygwin64\bin\mintty.exe /bin/sh -lc 'cd /cygdrive/c/Users/Tom/Desktop/; exec bash'
    
  • Haga clic en Siguiente'.

  • Ingrese el nombre deseado para el acceso directo y haga clic en 'Finalizar'.

Se pueden colocar múltiples accesos directos en el escritorio para abrir terminales Cygwin en varios directorios a los que se accede con frecuencia.

¿Inspirado por la solución publicada en Cómo abrir un shell Cygwin en un directorio específico de Netbeans? en superuser.com .

Patrick Kelly
fuente
4

Busque el archivo Cygwin.bat y cree contenido como este:

@echo off
set newpath=%cd:\=/%
pushd "%~dp0"
chdir bin
bash --login -i -c "cd \"%newpath%\"; exec bash"

Agregue la ruta a cygwin.bat al entorno PATH.

Ahora en cualquier carpeta puede escribir en la barra de direcciones:

cygwin

También puede escribirlo cuando está en cmd.exe

Geografía
fuente
3

Usé las siguientes líneas de código para iniciar zsh en el directorio actual en Win7.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="\"C:\\Programmieren\\cygwin64\\bin\\mintty.exe\" -i /Cygwin-Terminal.ico /bin/zsh --login -c 'cd \"%V\";zsh'"

tenga en cuenta que usé% V en lugar de% L o% 1 (ya que ambos no funcionaron para mí)

H. Hess
fuente
3

Cuando se necesita una nueva instalación, creo una "variable de entorno de usuario" de Windows con el nombre HOMEy le asigno la ruta dondequiera que residan "Mis documentos".

El instalador de cygwin detecta la HOMEvariable, la traduce automáticamente a un cygpath y la selecciona como mi directorio ~.

Esto ha funcionado bien para cada estación de trabajo que he usado profesionalmente los últimos 5 años (aproximadamente 3 o 4, Win7). Siempre he sido el único usuario en estas máquinas, no puedo decir cuál es el efecto.

Adam.en.Epsilon
fuente
3

Hice un script de edición de registro para abrir Cygwin en cualquier carpeta en la que haga clic con el botón derecho. Está en mi GitHub.

Aquí está mi GitHub

RegEditCódigo de muestra de Github para máquinas de 64 bits:

REGEDIT4

[HKEY_CLASSES_ROOT\Directory\shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_CLASSES_ROOT\Directory\shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\CygwinHere]
@="&Cygwin Bash Here"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\Background\shell\CygwinHere\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""
umer936
fuente
Si obtiene "Error al acceder al registro". error ver la respuesta de @mpersico a continuación ... me hubiera ahorrado 15 minutos :)
Daniel Sokolowski
2

Abra el terminal Cygwin como administrador

En powershell (usando chocolate):

choco install cyg-get

En cygwin se instalará el menú del botón derecho

cyg-get install chere
chere -i

Ahora puede hacer clic derecho y usar "Bash Prompt Here" en cualquier carpeta.

Jonathan
fuente
1

Puede agregar el icono al shell agregando un Iconconjunto de campos a la ruta a su Cygwin.icoarchivo.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Cygwin"
"Icon"="\"C:\\cygwin64\\Cygwin.ico\""

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe -e /bin/xhere /bin/bash.exe"
STEELIX
fuente
Creo que un requisito previo para la existencia de xhere es la instalación de chere, como se menciona en otras respuestas.
Samuel
1

En mi máquina Windows no estaba tomando:

chere -i -t mintty

Debido a que el mintty shell no estaba disponible, pero es posible que tenga la opción de varios otros shells como ash bash cmd dash mksh pdksh posh tcsh zsh passwd.

entonces usé:

chere -i -s bash

usuario3065757
fuente
Mintty no es un shell, es un emulador de terminal.
Palec
¿Cómo responde esto a la pregunta original?
Leigh
Esto proporcionará la ayuda a aquellos que no tienen poca importancia en su sistema y obtienen un error al intentar intentar la solución provista anteriormente, también seguí la solución provista anteriormente pero no funcionó en mi máquina Windows, pero mi respuesta resolvió el problema.
user3065757
1

Simplemente puede abrir la terminal de cygwin y escribir: cd y después de arrastrar y soltar la carpeta que desea finalizar ¡ingrese!

Panagiotis
fuente
Si bien esto no resuelve completamente la pregunta, es un consejo muy útil. Gracias.
RoG
1

En la respuesta que usa el registro, descubrí que en Windows 2008 R2 SP1, debe eliminar el fondo de la ruta. Además, dado que chere y xhere no son parte de cygwin64, aquí hay una solución que funciona para ambos, combinando el registro y las soluciones Enviar a. Reemplace 'E: \ cygwin64' con su ubicación de instalación:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\shell\cygwin_bash\command]
@="E:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico --exec /bin/bash.exe --login -c \"cd '%1' ; exec bash -rcfile ~/.bashrc\""
mpersico
fuente
0

Esta es la única solución de registro de Cygwin64 que funcionó para mí en Windows 8.1:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\mintty]
@="Mintty from Here"
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\mintty\command]
@="C:\\cygwin64\\bin\\mintty.exe -h always -e /usr/bin/ash -c 'cd  \"$(/usr/bin/cygpath \"%L\")\";  exec /usr/bin/bash  '"

Asegúrese de modificar su ruta 'C: \ cygwin64' según sea necesario.

Smyrnian
fuente
0

He creado el archivo por lotes y lo puse en el directorio / bin de Cygwin. Este script fue desarrollado de manera que permite instalar / desinstalar las entradas del registro para abrir carpetas y unidades seleccionadas en Cygwin. Para más detalles, consulte el enlace http://with-love-from-siberia.blogspot.com/2013/12/cygwin-here.html .

Actualización: esta solución hace lo mismo que las primeras sugerencias, pero todas las manipulaciones con el Registro de Windows están ocultas dentro del script.

Ejecute el comando para instalar

cyghere.bat /install

Ejecute el comando para desinstalar

cyghere.bat /uninstall
jsxt
fuente
0

También tuve un problema con git, que solía "robar" mis comandos cygwin, por lo que necesitaba ejecutarlo,
C:\cygwin\bin\mintty.exe -
pero después de instalarlo cherey ejecutarlo chere -i -t mintty -f como administrador (ver arriba), simplemente puede usar:
C:\cygwin\bin\mintty.exe -e /bin/xhere /bin/bash.exe "."
agregué esto en Total Commander como botón personalizado (derecha haga clic en el panel> agregar ...) y funciona muy bien.

Jakub Michalko
fuente
0

Cree un archivo bash, digamos move.shque tiene el siguiente código. C:\cygwin64\bin\run.exe -p /bin bash runFile.sh Esto inicia Cygwin y ejecuta el runFile.shpresente en el directorio bin de Cygwin. Suponga que desea navegar a un directorio específico, digamos, E:\code luego runFile.sh tiene el siguiente código.cd E: cd code

LeelaPrasad4648
fuente
0

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

  1. Cómo agregar un elemento del menú contextual al Explorador de Windows para carpetas
  2. VBScript pasar argumento de línea de comandos en rutas con espacios
  3. ¿Cómo pasar un comando con espacios y comillas como parámetro único a CScript?
  4. llamando a vbscript desde otro archivo vbscript pasando argumentos
  5. https://ss64.com/vb/syntax-args.html
  6. Compruebe si la cadena contiene espacio
  7. ¿Ejecuta la línea de comandos en silencio con VbScript y obtiene resultados?
  8. http://www.vbsedit.com/html/6f28899c-d653-4555-8a59-49640b0e32ea.asp
  9. /superuser/62525/run-a-batch-file-in-a-completely-hidden-way
  10. ¿Cómo ejecutar el script Batch recibido como argumento en VBscript?
  11. ¿Puedo pasar un argumento a un VBScript (archivo vbs lanzado con cscript)?
usuario
fuente
-1
@echo off
C:
SET mypath=%~dp0
c:\cygwin\bin\bash -c "cd '%mypath%'; export CHERE_INVOKING=1; exec /bin/bash --login -i"

Copie los comandos anteriores en un archivo de texto y guárdelo como .bat en cualquiera de "su carpeta de interés". Debería abrir cygwin en "su carpeta de interés".

Kalyan
fuente
-1

basado en la respuesta @LindseyD Creé un archivo BAT simple, que abre cygwin en el directorio actual, puede ser útil (para mí lo es). Suponiendo que tiene el directorio bin de cygwin en PATH.

FOR /F %%x IN ('sh -c pwd') DO bash -l -i -c 'cd %%x; exec bash'
Roman Hocke
fuente
-1

No sé por qué tuve que perder tanto tiempo, pero esto funciona para mí en win 10, 64 bit:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash]
@="Open Cygwin Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\cygwin_bash\command]
@="C:\\cygwin64\\bin\\mintty.exe -i /Cygwin-Terminal.ico C:\\cygwin64\\bin\\bash.exe --login -c \"cd \\\"%V\\\" ; exec bash -rcfile ~/.bashrc\""
Totty.js
fuente
-1

Probablemente el más simple:

1) Crear archivo foo.reg

2) Insertar contenido:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty]
@="open mintty"

[HKEY_CLASSES_ROOT\Directory\background\shell\open_mintty\command]
@="cmd /C mintty"

3) Ejecute foo.reg

Ahora solo haga clic derecho en cualquier carpeta, haga clic open minttyy generará mintty en esa carpeta.

lama12345
fuente
-2

Lo mejor es hacer lo siguiente:

HKEY_CLASSES_ROOT\Directory\shell\BashHere
Enter Data: Bash Here

HKEY_CLASSES_ROOT\Directory\shell\BashHere\command
Enter Data: 

cmd.exe /c C:\cygwin\bin\bash.exe --login -c "cd '%1'; exec /bin/bash"
Shashi Ranjan
fuente