Você pode executar um arquivo em lote a partir de um shell Cygwin diretamente, você nem precisa da chamada intermediária para cmd
. Se o arquivo em lote requer argumentos, eles precisam ser citados na moda do Windows; pode ser mais simples executar cmd /c 'foo.bat "quoted arguments"'
.
Você não diz em qual terminal você está executando o shell. Os arquivos em lote por si só não se importam com isso, mas os comandos que são executados a partir dos arquivos em lote podem. Os emuladores de terminal Cygwin não emulam consoles do Windows, portanto, são bons para programas Cygwin e para programas somente stdio, mas não para programas de console do Windows.
Se normalmente executar shells Cygwin em um terminal Cygwin (como rxvt ou mintty), você pode executar os arquivos batch com problemas em um console separado do Windows com start foo.bat
. Você pode querer executar Console2 como um substituto melhor para o console do Windows e executar aplicativos de console do Windows nos aplicativos Console2 e Cygwin em um Terminal Cygwin (ou mesmo no Console2).
cmd /?
é um arenque vermelho: há presumivelmente diretórios de um caractere no diretório raiz do Cygwin, portanto o shell expande /?
e executa cmd
com switches que não produzem saída.