Z konsoli git: jak uruchomić plik wsadowy, a następnie powrócić do konsoli git?

Mam mały skrypt o nazwie clear.bat, który wykonuje pewne prace porządkowe na moich źródłach.

Jest to plik .bat, dzięki któremu mogę go łatwo dwukrotnie kliknąć w Eksploratorze Windows.

Czasami wydaje mi się, że bardziej przydatne jest wykonanie go z mojego Git Basha (msysgit, jeśli to ma znaczenie).

Aby to zrobić, wpisuję

cmd
clear.bat
exit

cmd zamienia mój Git bash w normalne cmd okno, w którym mogę łatwo wykonać moją partię. Kiedy wpiszę exit, środowisko cmd zostanie zakończone i Jestem z powrotem w moim Git bash.

Czy można to osiągnąć w łatwiejszy sposób?

Próbowałem cmd /C clean.bat od docs say

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

Edit:
Właśnie zauważyłem, że post jest uszkodzony.

Chcę wykonać clean.bat z poziomu Basha Git bez konieczności wpisywania trzech powyższych poleceń (cmd, clear.bat, exit). Chcę tylko uruchomić plik .bat z mojego Basha. Oczywistym sposobem byłoby utworzenie osobnego pliku .sh, który ta sama praca, ale doprowadzi to do podwójnego kodu.


Edit 2: Gdy wykonam cmd /C clean.bat, Git bash zamienia się w zwykłe środowisko CMD i wyświetla tylko monit. Plik clean.bat nie jest wykonywany. To tak samo, jakbym po prostu wpisał cmd.

Ponadto dodanie przełącznika /debug nie robi dosłownie nic. Wygląda na to, że tylko cmd jest oceniane, a wszystkie dalsze parametry są ignorowane.

Author: eckes, 2012-08-08

4 answers

Po dłuższym pobawieniu się, sam znalazłem rozwiązanie:

cmd "/C clean.bat"

Robi sztuczkę. Ale nie mam pojęcia dlaczego...

 62
Author: eckes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-09 06:50:09

./clear.bat wystarczy.

 30
Author: half-potato,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-16 07:37:52

The Git for Windows (msysGit został zastąpiony przez Git for Windows1) FAQ mówi, że masz 3 opcje:

  • Uruchamianie programów, które mają problemy z używaniem winpty użyteczność. Pozwala to na korzystanie z ładniejszego terminala mintty, ale może stać się nieporęczny, jeśli potrzebujesz obejścia wielu programów.

  • Zmodyfikuj skrót dla Git Bash tak, aby uruchamiał bash bezpośrednio bez mintty, więc używa domyślnego hosta konsoli i skonfiguruj go do "szybkiej edycji", rozsądnego rozmiaru i przewijania w tył i odpowiedniej czcionki unicode. Nadal będziesz musiał żyć z innymi dziwactwami hosta konsoli.

  • Install and use ConEmu .

 4
Author: Yitzhak Steinmetz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-10-16 12:39:12

Lubię start clean, otwiera nowe okno z cmd. Metoda ta ma pewne zalety:

    Cmd.exe otrzymuje natywną konsolę [4]} nowa konsola ma natywne kodowanie znaków windows (np. cp1251 vs utf8)
 0
Author: lav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-03-29 08:35:21