Gostaria de usar o Cygwin para meu shell principal no trabalho, mas meu grupo usa arquivos em lote para vários processos. Disseram-me que posso fazer isso cmd /c batch.bat
para executar o arquivo em lotes do Cygwin. Isso funciona para alguns casos, e não para outros. Um dos arquivos em lote falha completamente quando faço isso, mas funciona bem quando eu o executo no shell do cmd.
Outra estranheza que notei é que, se eu correr cmd /?
do Cygwin, não recebo saída. Executar isso a partir do shell do cmd fornece a ajuda padrão. Mesmo fazendo cmd /c cmd /?
não fornece saída. Se eu corro cmd
do Cygwin, ele fornece o cmd shell e, se eu corro cmd /?
, recebo o texto de ajuda, mas sem as quebras de página.
Acho que a próxima coisa a tentar é encontrar uma maneira de realmente iniciar o cmd dentro de sua própria janela distinta, como se você tivesse ido para Iniciar-> Executar e digitado "cmd". Existe uma maneira de fazer isso no Cygwin?
fonte
Você pode executar um arquivo em lotes diretamente do shell Cygwin, nem precisa da chamada intermediária
cmd
. Se o arquivo em lotes exigir argumentos, eles deverão ser citados da maneira do Windows; pode ser mais simples de executarcmd /c 'foo.bat "quoted arguments"'
.Você não diz em qual terminal está executando o shell. Os arquivos em lote por si só não se importam com isso, mas os comandos executados a partir dos arquivos em lote podem. Os emuladores de terminal Cygwin não emulam os consoles do Windows; portanto, eles são bons para os programas Cygwin e para programas somente stdio, mas não para os programas de console do Windows.
Se normalmente executar shells Cygwin em um terminal Cygwin (como rxvt ou mintty), você poderá executar os arquivos em lotes de problemas em um console separado do Windows
start foo.bat
. Convém executar o Console2 como um substituto melhor para o console do Windows e executar aplicativos do console do Windows nos aplicativos Console2 e Cygwin em um terminal Cygwin (ou mesmo no Console2).cmd /?
é um arenque vermelho: presumivelmente há diretórios com um caractere no diretório raiz do Cygwin; portanto, o shell se expande/?
e executacmd
com opções que, por acaso, não produzem saída.fonte