4

Мне нужно запустить git-bash (sh.exe) с предопределенным путем в среде Windows.

Для cmd.exe это можно сделать с помощью такой команды:

cmd.exe /K "cd /d {PATH_GOES_HERE}"

Для powershell.exe это можно сделать с помощью этой команды:

powershell.exe -noexit -command "cd '{PATH_GOES_HERE}'"

Но я не мог получить то же самое с git-bash aka sh.exe. Я пробовал такие вещи, как ...

sh.exe --login -i -c "cd {PATH_GOES_HERE}"

... но я не мог заставить это работать.

Сама командная строка работает, введя ...

sh.exe --login -i -c "ls"

... Я получаю раскрашенный bash вывод каталога

2 ответа2

1

Благодаря совету от Michael D я установил Git с функцией "Git Bash Here". Затем я посмотрел, как Git делает это, просматривая реестр:

HKEY_CLASSES_ROOT\Directory\shell\git_shell\command

Это дало мне команду использовать:

C:\Program Files\Git\git-bash.exe "--cd=%1"

Где %1 обозначает путь, предоставленный проводником Windows.

Так что все, что мне нужно было сделать, это пойти по команде вроде:

C:\Program Files\Git\git-bash.exe "--cd={PATH_GOES_HERE}"

Кстати, нет необходимости преобразовывать пути Windows в такие вещи, как /c/users/myuser/...

Это означает, что теперь я не использую sh.exe, а git-bash.exe .

Спасибо товарищи.

1

bash читает файл .bashrc при запуске.

  1. запустить sh.exe --login
  2. создать файл .bashrc , введя echo "cd c/Windows/system32/" > ~/.bashrc
  3. выход из системы (Ctrl + D)
  4. запустить sh.exe --login
  5. введите pwd должно быть c/Windows/system32/

AFAIK windows защищает папку \Program Files\ с помощью UAC. Возможно, вам придется запустить sh.exe администратора или вместо этого установить git в C:\git (вне папки программных файлов).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .