Як запустити Git Bash з командного рядка DOS?

У мене є те, що я сподіваюся - це просте питання, але я так і не змогла знайти відповідь. Я хотів би запустити Git Bash з пакетного файлу DOS. Ось що я спробував поки що:

1) Запускається Git Bash з кнопки «Пуск 7»  2) Використовується для ідентифікації процесу як "sh.exe"  3) Запущено sh.exe з пакетного файлу за допомогою команди start

start sh.exe

Однак це не запускає повного середовища Git Bash. Git Bash зазвичай має "MINGW32" у рядку заголовка, але sh.exe має повний шлях до ... Git \ bin \ sh.exe. Мені відчуваєшся, начебто існують деякі накладені або залежні об'єкти, про які я, можливо, не знаю, теж потрібно завантажувати (витягнути в "імпортований?").

Це було одне з найпопулярніших результатів пошуку Google, але це не означає, що мені цілком зрозуміло, і я не впевнений, що це стосується моєї ситуації:

Запуск git з рядка Windows Cmd: Де ключові файли?

Мені близько 7 років у світі пакетного сценарію DOS, тому будьте ласкаві.

Будь-яка допомога цінується. Заздалегідь спасибі.

59

9 Відповіді

Якщо ви хочете запустити з пакетного файлу:

  • for x86

    start "" "%sYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
    
  • for x64

    start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login
    
80
додано
Чи є спосіб вводити та виконати команду в пакетному вікні Git після відкриття в пакетному файлі?
додано Автор Nick, джерело
@Drunix ви маєте рацію, немає шляху "Program Files (x86) \" у системах x86. Я зробив відкат. Дякую.
додано Автор Endoro, джерело
Що робити, якщо він не встановлений на системний диск? Що робити, якщо він не встановлений у файли програми?
додано Автор Michael Kruglos, джерело
Спасибі @ Ендоро! Хоча відповідь @ Klas Mellbourn була правильною для Powershell, ваш коректніше, оскільки я працюю з пакетного файлу DOS. Додавання директиви "start" призводить до того, що програма виконується асинхронно, що саме те, що мені потрібно! Пальці вгору!
додано Автор Eric Hepperle - CodeSlayer2010, джерело
@OviC Ви впевнені, що ваша редакція правильна? "Програми файли (x86)" існує лише в архітектурі x64 для 32-бітних програм.
додано Автор Drunix, джерело

Я не знаю точно, що ви маєте на увазі під "повним середовищем Git Bash", але я отримую приємний запит, якщо я це зробив

"C:\Program Files\Git\bin\sh.exe" --login

У PowerShell

& 'C:\Program Files\Git\bin\sh.exe' --login

The --login switch makes the shell execute the login shell startup files.

27
додано
Дякуємо @Klas Mellbourn. Ваша відповідь є корисною для Powershell, але без додавання директиви "start", як і в відповіді Ендоро, вона зупиняє виконання наступної програми до виходу оболонки, що не є бажаною поведінкою, інакше я б проголосував тобі.
додано Автор Eric Hepperle - CodeSlayer2010, джерело
Я використовую консоль 2 до вікна cmd , і це викликає дивну поведінку. Я помістив це в файл .bat, і тепер все добре: @ "% SYSTEMDRIVE% \ Program Files \ Git \ bin \ bash.exe" --login
додано Автор Grault, джерело

Я не знаю точно, що ви маєте на увазі під "повним середовищем Git Bash", але я отримую приємний запит, якщо я це зробив

"C:\Program Files\Git\bin\sh.exe" --login

У PowerShell

& 'C:\Program Files\Git\bin\sh.exe' --login

The --login switch makes the shell execute the login shell startup files.

27
додано
Дякуємо @Klas Mellbourn. Ваша відповідь є корисною для Powershell, але без додавання директиви "start", як і в відповіді Ендоро, вона зупиняє виконання наступної програми до виходу оболонки, що не є бажаною поведінкою, інакше я б проголосував тобі.
додано Автор Eric Hepperle - CodeSlayer2010, джерело
Я використовую консоль 2 до вікна cmd , і це викликає дивну поведінку. Я помістив це в файл .bat, і тепер все добре: @ "% SYSTEMDRIVE% \ Program Files \ Git \ bin \ bash.exe" --login
додано Автор Grault, джерело

Я віддаю перевагу використовувати git-bash.exe замість sh.exe.

start "" "%ProgramFiles%\Git\git-bash.exe" -c "tail -f /c/Windows/win.ini"

Ви можете припинити закриття вікна, коли в кінці виклику /usr/bin/bash --login-i ;

start "" "%ProgramFiles%\Git\git-bash.exe" -c "echo 1 && echo 2 && /usr/bin/bash --login -i"

Примітка: я не впевнений, що це хороший спосіб :)

18
додано
Красива відповідь, але вікно git-bash закривається негайно. Ви знаєте, як відключити автоматичне закриття після завершення виконання команди?
додано Автор Mark, джерело
[code] start "" "% ProgramFiles% \ Git \ git-bash.exe" [/ code] прекрасно працює!
додано Автор PauAI, джерело
@ PauAI 2018 тепер ... Я спробував start ""% ProgramFiles% \ Git \ git-bash.exe " з командного рядка адміністратора, і хоча це відкриває Git Bash у новому вікні набравши просту команду, як-от ls не виводиться. Цей метод, здається, не дозволяє виконувати команди Linux. ... EDIT: Працював, просто зайняв багато часу (2 хвилини), щоб запустити ls. Тоді ls знову побіг менш ніж за 1 сек. ... дивний.
додано Автор Eric Hepperle - CodeSlayer2010, джерело
@ Марк дякую Марку. Я додав приклад моєї відповіді вище. На жаль, я не знаю, як ми повинні правильно робити це, тому що я не людина з віконцем :)
додано Автор kujiy, джерело
start "" "%sYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login -i

Гіт баш буде відкритим.

3
додано

https://stackoverflow.com/a/33368029/15789

Я відповів тут відповідь.

Відкрийте вікно командного рядка Windows і виконайте цей сценарій. Якщо в робочому каталозі є зміни, він відкриє баш-термінал у робочому каталозі та відображає поточний статус git. Він відкриває вікно bash, викликаючи exec bash.

Якщо у вас є кілька проектів, ви можете створювати копії цього сценарію з іншою папкою проекту та викликати його з основного пакетного сценарію.

2
додано

Я віддаю перевагу, ставлячи git в змінну середовища та просто викликаючи

c:\Users\myname>sh
or 
c:\Users\myname>bash

Кроки для створення змінної середовища (Win7)

  • From the desktop, right click the Computer icon.
  • Choose Properties from the context menu.
  • Click the Advanced system settings link.
  • Click Environment Variables.
  • In the section System Variables (or User variables), hit button new, put variable name as GIT_HOME, value as ; for me it is c:\tools\git
  • find the PATH environment variable and select it. Click Edit. If the PATH environment variable does not exist, click New.
  • In the Edit System Variable (or New System Variable) window, add to exiting value ;%GIT_HOME%/bin;%GIT_HOME%;. Click OK. Close all remaining windows by clicking OK.
  • open new Command prompt window, and just type sh.exe or sh or bash.exe or git-bash
1
додано
Дякую! Я зміг отримати роботу з GIT_HOME як C: \ Program Files \ Git і набравши git-bash з CMD. Також дивно, що, хоча вам потрібно лише набрати PATH, щоб побачити його вміст, щоб побачити зміст цієї змінної git, ви повинні ввести echo% GIT_HOME%
додано Автор Eric Hepperle - CodeSlayer2010, джерело

Я використовував інформацію вище, щоб допомогти створити більш постійне рішення. Нижче буде створено псевдонім sh, який можна використовувати для відкриття Git Bash:

echo @start "" "%PROGRAMFILES%\Git\bin\sh.exe" --login > %systemroot%\sh.bat
1
додано
Завдяки dpate! Я вставив ваше команду echo в командний рядок і запустив sh і запустив вікно git-bash, і я мав можливість виконувати команди чудово. Можна додати трохи деталей до вашої відповіді, пояснюючи, як це працює? Я краще навчаюсь, як працює риболовля, ніж хтось дасть мені рибу, і я думаю, що це буде корисним для інших, хто шукає хорошу відповідь. Дякую
додано Автор Eric Hepperle - CodeSlayer2010, джерело

Відповідь Ендоро у віці, і я не можу коментувати;

# if you want to launch from a batch file or the command line:

start "" "%ProgramFiles%\Git\bin\sh.exe" --login
0
додано