Je voudrais utiliser Cygwin pour mon shell principal au travail, mais mon groupe utilise des fichiers batch pour plusieurs processus. On m'a dit que je pouvais juste faire cmd /c batch.bat
pour exécuter le fichier de commandes à partir de Cygwin. Cela fonctionne pour certains cas et pas pour d'autres. L'un des fichiers de commandes échoue complètement lorsque je le fais, mais fonctionne correctement lorsque je l'exécute à partir du shell cmd.
Une autre bizarrerie que j'ai remarquée est que si je cours cmd /?
depuis Cygwin, je n'obtiens aucune sortie. L'exécution à partir du shell cmd donne l'aide standard. Même faire cmd /c cmd /?
ne fournit aucune sortie. Si cmd
j'exécute à partir de Cygwin, cela me donne le shell cmd, puis si j'exécute cmd /?
, j'obtiens le texte d'aide, mais sans les sauts de page.
Je suppose que la prochaine chose à essayer est de trouver un moyen de lancer réellement cmd dans sa propre fenêtre distincte, comme si vous étiez allé à Démarrer-> Exécuter, puis tapé "cmd". Existe-t-il un moyen de le faire depuis Cygwin?
la source
Vous pouvez exécuter un fichier batch directement depuis un shell Cygwin, vous n'avez même pas besoin de l'appel intermédiaire à
cmd
. Si le fichier de commandes nécessite des arguments, ils doivent être cités à la manière de Windows; il pourrait être plus simple à exécutercmd /c 'foo.bat "quoted arguments"'
.Vous ne dites pas dans quel terminal vous exécutez le shell. Les fichiers batch en eux-mêmes ne se soucient pas de cela, mais les commandes qui sont exécutées à partir des fichiers batch peuvent l'être. Les émulateurs de terminaux Cygwin n'émulent pas les consoles Windows, ils conviennent donc aux programmes Cygwin et aux programmes stdio uniquement, mais pas aux programmes de console Windows.
Si vous exécutez normalement des shells Cygwin dans un terminal Cygwin (tel que rxvt ou mintty), vous pouvez exécuter les fichiers batch de problèmes dans une console Windows distincte avec
start foo.bat
. Vous souhaiterez peut-être exécuter Console2 comme meilleur remplacement de la console Windows et exécuter les applications de console Windows dans les applications Console2 et Cygwin dans un terminal Cygwin (ou même dans Console2).cmd /?
est un hareng rouge: il y a probablement des répertoires d'un caractère dans le répertoire racine de Cygwin, donc le shell se développe/?
et s'exécutecmd
avec des commutateurs qui ne produisent aucune sortie.la source