
Я могу запустить git-bash через командную строку Windows несколькими способами:
"C:\Program Files\Git\bin\sh.exe"
"C:\Program Files\Git\git-bash.exe"
"C:\Program Files\Git\usr\bin\mintty.exe"
Я хотел бы запустить git-bash в определенном каталоге, используя такой вызов.
Для контекста, я делаю это из SAS Enhanced Editor. Фактический вызов
%sysexec(start "" "C:\Program Files\Git\bin\sh.exe" && exit);
Для тех, кто не знаком с SAS, %sysexec
открывает экземпляр командной строки Windows и выдает любую команду, заданную в качестве аргумента. Работает на удивление хорошо. Однако я хотел бы иметь возможность запускать git-bash в определенном каталоге, а не только в домашнем.
Для этого я могу создать запись в .bashrc
:
cd /c/new/starting/dir
Однако проблема в том, что всякий раз, когда я открываю git-bash, например, через контекстное меню в определенной папке, каталогом по умолчанию становится .bashrc
.
я вижу этосуществуют параметры запуска git-bashкак --cd-to-home
или --cd=<path>
но я не могу заставить их работать. Например,
"C:\Program Files\Git\bin\sh.exe" --cd-to-home
"C:\Program Files\Git\bin\sh.exe --cd-to-home"
"C:\Program Files\Git\git-bash.exe" --cd-to-home
"C:\Program Files\Git\git-bash.exe --cd-to-home"
etc.
Можно ли запустить git-bash в определенном каталоге из командной строки Windows? Если да, то каков правильный синтаксис?
БОНУС: Бонусные баллы за описание в 50 символов или меньше
решение1
"C:\Program Files\Git\git-bash.exe" --cd=c:\path\to\folder
решение2
Одним из возможных решений является смена каталога перед открытием git-bash. По умолчанию git-bash открывается в любом текущем каталоге. Для этого поместите вызов cd
перед start
,
cd C:\specific\dir\to\open && start "" "C:\Program Files\Git\bin\sh.exe"
Поскольку это делается в SAS, конкретный каталог может быть сохранен в макропеременной. Это гарантирует требование быть в пределах 50 символов (и, следовательно, вызываться горячей клавишей в меню KEYS
). Где-то в вашем коде вы можете назначить рабочий каталог Git,
%let gwd = C:\specific\dir\to\open;
Тогда вызов %sysexec
выглядит так:
%sysexec(cd &gwd. && start "" "C:\Program Files\Git\bin\sh.exe" && exit);
Это работает следующим образом. Сначала SAS расширяет &gwd
. Затем он открывает командную строку Windows. cd
Изменяет каталоги на те, &gwd.
в которые разрешен. Затем Git-bash открывается в текущем каталоге (который был изменен на &gwd.
). Наконец, всякий раз, когда git-bash закрывается, exit
дается команда, закрывающая сеанс командной строки Windows.
К сожалению, кажется, что начальный вариант cd
вводит достаточно задержки между вызовом и открытием git-bash, чтобы раздражать. Я подозреваю, что запуск cd
команды в git-bash может быть быстрее, но этот подход работает.
решение3
Вы можете создать такой скрипт:
cd c:\path\to\particular\directory
"C:\Program Files\Git\bin\sh.exe"
Сохраните его как whatever.cmd
или whatever.bat
и дважды щелкните по нему.
Для удобства вы можете добавить свой скрипт на панель задач, выполнив следующие шаги. Я подумал, что стоит включить это, поскольку это не так просто, как вы могли бы ожидать (нельзя просто перетащить сам скрипт на панель задач):
- Щелкните правой кнопкой мыши по скрипту и выберите «Создать ярлык».
- щелкните правой кнопкой мыши по созданному вами ярлыку и выберите «Свойства».
- В разделе «Ярлык», «Цель» введите:
cmd /c C:\path\to\your\script\whatever.cmd
- Примечание: возможно, вам придется указать полный путь кcmd(например, C:\Windows\System32\cmd.exe...)
Теперь просто нажмите команду на панели задач, чтобы запустить скрипт одним щелчком мыши.