Me gustaría usar Cygwin para mi shell principal en el trabajo, pero mi grupo usa archivos por lotes para varios procesos. Me han dicho que solo puedo hacer cmd /c batch.bat
para ejecutar el archivo por lotes desde Cygwin. Esto funciona para algunos casos, y no para otros. Uno de los archivos por lotes falla por completo cuando hago esto, pero funciona bien cuando lo ejecuto desde el shell de cmd.
Otra rareza que he notado es que si ejecuto cmd /?
desde Cygwin, no obtengo salida. Ejecutar esto desde el shell cmd proporciona la ayuda estándar Incluso hacer cmd /c cmd /?
no proporciona salida. Si ejecuto cmd
desde Cygwin, me da el shell de cmd, y luego si ejecuto cmd /?
, obtengo el texto de ayuda, pero sin los saltos de página.
Supongo que lo siguiente que debe intentar es encontrar una manera de iniciar cmd dentro de su propia ventana, como si hubiera ido a Inicio-> Ejecutar, y luego escriba "cmd". ¿Hay alguna manera de hacer esto desde Cygwin?
fuente
Puede ejecutar un archivo por lotes desde un shell de Cygwin directamente, ni siquiera necesita la llamada intermedia
cmd
. Si el archivo por lotes requiere argumentos, deben citarse al estilo de Windows; podría ser más simple de ejecutarcmd /c 'foo.bat "quoted arguments"'
.No dices en qué terminal estás ejecutando el shell. Los archivos por lotes por sí mismos no se preocupan por eso, pero los comandos que se ejecutan desde los archivos por lotes sí pueden. Los emuladores de terminal de Cygwin no emulan las consolas de Windows, por lo que son buenos para los programas de Cygwin y para los programas solo estándar, pero no para los programas de consola de Windows.
Si normalmente ejecuta shells de Cygwin en un terminal de Cygwin (como rxvt o mintty), puede ejecutar los archivos por lotes de problemas en una consola de Windows separada con
start foo.bat
. Es posible que desee ejecutar Console2 como un mejor reemplazo para la consola de Windows y ejecutar aplicaciones de consola de Windows en Console2 y aplicaciones Cygwin en un terminal Cygwin (o incluso en Console2).cmd /?
es una pista falsa: presumiblemente hay directorios de un solo carácter en el directorio raíz de Cygwin, por lo que el shell se expande/?
y se ejecutacmd
con interruptores que no producen salida.fuente