web-dev-qa-db-fra.com

À partir d'une console git: comment exécuter un fichier de commandes, puis revenir à la console git?

J'ai un petit script utilitaire appelé clear.bat qui fait un peu de ménage sur mes sources.

C'est un .bat afin que je puisse facilement double-cliquer dessus dans l'Explorateur Windows.

Parfois, je trouve plus pratique de l'exécuter depuis mon Git bash (msysgit, si cela est important).

Pour ce faire, je tape

cmd
clear.bat
exit

cmd transforme ma bash Git en une fenêtre normale de cmd où je pourrais facilement exécuter mon batch. Lorsque je tape exit, l'environnement cmd est terminé et je suis de retour dans mon Git bash.

Cela pourrait-il être réalisé de manière plus simple?

J'ai essayé cmd /C clean.bat puisque les docs disent

Syntax
      CMD [charset] [options]

      CMD [charset] [options] [/c Command] 

      CMD [charset] [options] [/k Command] 

Options   
   /C     Run Command and then terminate

   /K     Run Command and then return to the CMD Prompt.
          This is useful for testing, to examine variables

Modifier:
Je viens de remarquer que le message est cassé.

Ce que je veux, c'est exécuter clean.bat depuis Git bash sans avoir à taper les trois commandes ci-dessus (cmd, clear.bat, exit). Je veux juste exécuter le .bat fichier depuis mon Git bash. La manière la plus évidente serait de créer un .sh fichier qui fait le même travail mais cela entraînera un double code.


Edit 2: Lorsque j'exécute cmd /C clean.bat, le Git bash se transforme en un environnement CMD simple et n'affiche que l'invite. Le fichier clean.bat n'est pas exécuté. C'est la même chose que si je tape simplement cmd.

De plus, l'ajout d'un /debug switch ne fait littéralement rien. Il semble que seul cmd soit évalué et tous les autres paramètres soient ignorés.

62
eckes

Après avoir joué un peu plus, j'ai trouvé la solution moi-même:

cmd "/C clean.bat"

fait l'affaire. Mais je n'ai aucune idée, pourquoi ...

73
eckes

./clear.bat fera l'affaire.

40
half-potato

Git pour Windows (msysGit a été remplacé par Git pour Windows 1 ) FAQ indique que vous avez 3 options:

  • Exécutez les programmes qui rencontrent des problèmes à l'aide de l'utilitaire winpty . Cela vous permet de continuer à utiliser le terminal Mintty plus agréable, mais peut devenir encombrant si vous avez besoin de la solution de contournement pour de nombreux programmes.

  • Modifiez le raccourci pour Git Bash pour exécuter bash directement sans mintty afin qu'il utilise l'hôte de console par défaut et configurez-le pour "Édition rapide", taille raisonnable et défilement arrière et police unicode appropriée. Vous devrez toujours vivre avec les autres caprices de la console Host.

  • Installez et utilisez ConEm .

6
Yitzhak Steinmetz

J'aime start clean, il ouvre une nouvelle fenêtre avec cmd. Cette méthode présente certains avantages:

  • cmd.exe obtient une console native
  • la nouvelle console a un encodage de caractères Windows natif (par exemple cp1251 vs utf8)
0
lav