2015-06-16 1 views
0

Я пытаюсь написать командный файл, который при запуске будет клонировать репозиторий локально.Создайте файл bat, который будет запускать git, а затем запустите скрипт

Чтобы открыть мерзавца я имею следующую команду:

C:\Windows\System32\cmd.exe /c "%LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe" --login -i 

Однако независимо от того, что команда, которую я поставил после этого он никогда не работает. Я где-то читал, что это связано с тем, что когда вы вызываете новую оболочку, она никогда не возвращается к старой, не уверен, насколько это верно, однако есть ли способ запустить git-команды автоматически после открытия окна подсказки git?

Edit:

Так что, если я запускаю эту летучую мышь файл, он не будет эхо моего текста, как же? Почему он игнорирует все команды после того, как я открываю git.

"%LOCALAPPDATA%\Atlassian\SourceTree\git_local\bin\sh.exe" --login -i 

ECHO THIS IS A TEST 

Update:

Когда я запускаю выше сценарий, он открывает GIT оболочку, а затем, если я типа выхода эхо команда будет работать. Только после того, как я закрыл свою оболочку git, оставшаяся часть моего пакетного скрипта запускается. Как я могу сказать, что мой пакетный скрипт выполняет команды в оболочке git?

+0

Это верно, но здесь не применяется. Кроме того, он должен отлично выполнять команду, хотя вам не нужна новая оболочка, поэтому вы можете просто выполнить строку '% LOCALAPPDATA% \ Atlassian \ SourceTree \ git_local \ bin \ sh.exe" --login -i '. Вы уверены, что ничего не выполнили? Это кажется странным. Можете ли вы запустить сценарий из CMD или добавить строку 'pause' в конце скрипта, чтобы вы могли прочитать его вывод? – GolezTrol

+0

@GolezTrol Я только что редактировал вопрос и показал вам мой сценарий. Что происходит, когда я запускаю это окно cmd, начинается git, и он ждет моего ввода, «THIS IS TEST» нигде не отображается – Bojan

+0

А, да. Вы запускаете оболочку git, которая является инструментом командной строки. Элемент управления не возвращается в пакетный файл до тех пор, пока оболочка git не будет завершена. Что именно вы ожидаете от этого? – GolezTrol

ответ

0

Если вы запустите интерактивную оболочку (опция -i), она не вернется, пока вы не выйдете из оболочки. Чтобы команды запускались как часть запуска вашей оболочки, вы добавляете их в сценарий /etc/profile. Поскольку вы имеете дело с оболочкой Git для Windows здесь, которая будет находиться в папке установки Git. Вы также можете создать файл $HOME/.profile, который будет только для вашей учетной записи пользователя. См. Руководство bash для получения более подробной информации о файлах bash, которые читаются при запуске интерактивного сеанса.

Смежные вопросы