如何使用脚本(Bash或Windows批处理)启动具有指定工作目录的新Git Bash窗口?
我的目标是从一个脚本启动多个Git Bash窗口,每个窗口都设置到不同的工作目录。这样,我可以在启动计算机后快速开始工作,而不必打开Git Bash窗口并将每个窗口导航到正确的工作目录。
我不是在问如何更改默认工作目录,就像这个问题一样,而是从脚本启动具有不同工作目录的一个或多个终端窗口。
如何使用脚本(Bash或Windows批处理)启动具有指定工作目录的新Git Bash窗口?
我的目标是从一个脚本启动多个Git Bash窗口,每个窗口都设置到不同的工作目录。这样,我可以在启动计算机后快速开始工作,而不必打开Git Bash窗口并将每个窗口导航到正确的工作目录。
我不是在问如何更改默认工作目录,就像这个问题一样,而是从脚本启动具有不同工作目录的一个或多个终端窗口。
Answers:
Start in
与程序认为存在的工作目录有关
GIT中bash使用cmd.exe
其终端加上从MSYS / MinGW的一些推广其通过提供sh.exe
,一种的cmd.exe
包装。在Windows中,您可以使用以下start
命令启动新终端。
因此,启动具有特定工作目录的新Git Bash终端的shell脚本为:
(cd C:/path/to/dir1 && start sh --login) &
(cd D:/path/to/dir2 && start sh --login) &
等效的Windows批处理脚本为:
C:
cd \path\to\dir1
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
D:
cd \path\to\dir2
start "" "%SYSTEMDRIVE%\Program Files (x86)\Git\bin\sh.exe" --login
要获得与从开始菜单启动的Git Bash相同的字体和窗口大小,最简单的方法是将开始菜单的快捷方式设置复制到命令控制台的默认设置中(要更改默认设置,请打开cmd.exe
,在左上方的图标上单击鼠标左键,然后选择默认值)。
cd
在我要启动Git Bash的目录中,然后start
在您的示例中运行命令,实际上会在该目录中为我提供一个Git Bash终端。您确定在bash rc文件中的某处没有执行cd $HOME
(或cd
没有执行args)吗?(如.bashrc
,,.profile
...)还请记住驱动器号。如果你想在上启动的Git Bash的X:
驱动器,然后做cd x:\path
不会削减它,你需要做的x:
,然后cd \path
才start
cd x:\path
。将相应地编辑我的解决方案。
cmd.exe
设置是不一样的,在Git的Bash的安装默认的Git Bash的设置!而且,您必须了解默认设置(Defaults
从上下文菜单中)和当前设置()之间的区别Properties
。因此,我所做的是:(1)打开Git Bash,选择Properties
(当前设置),(2)对其进行调整,以精确地显示我想要的(字体,窗口大小+位置),(3)打开cmd.exe
,选择Defaults
,(4 )从Git Bash复制粘贴设置到cmd.exe
。然后OK
在cmd.exe
“设置”中,Cancel
在Git Bash
的设置中,瞧!
尝试--cd =选项。假设您的GIT Bash位于C:\ Program Files \ Git,它将是:
"C:\Program Files\Git\git-bash.exe" --cd="e:\SomeFolder"
如果在注册表项中使用,则文件夹参数可以与%1一起提供:
"C:\Program Files\Git\git-bash.exe" --cd="%1"
%1
注册表参数?
让我们加起来@Drew Noakes的答案:
"C:\Program Files\Git\git-bash.exe" --cd=C:\GitRepo
该cd
PARAM应该是一个选项如何指定工作目录。
还要注意,--login
那里没有任何参数:而是使用另一个专用于SSH密钥的额外应用程序:Pageant(PuTTY身份验证代理)。
C:\GitRepo
就像@Drew Noakes早些时候提到/在这里显示的一样,我也使用它。
Ctrl + Alt + B
这些快捷方式是Windows中另一个鲜为人知的功能。但是有一个限制:若要使快捷方式生效,必须将其放在用户的子目录中的某个位置:桌面就可以了。
如果您不希望它可见但仍可激活,请将其放置.lnk
在快速启动文件夹中,因为该目录是用于此类快捷方式的。(无论是否显示在桌面上)#76080 #3619355
"\Application Data\Microsoft\Internet Explorer\Quick Launch\"
这基本上是@lengxuehx的答案,但已针对Win 10进行了更新,并假定您的bash安装来自git官方下载的Windows版Git Bash 。
cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit
我丢失了Git Bash的上下文菜单项作为从注册表设置运行的命令后,最终使用了此命令。如果您对此感到好奇,我可以这样做:
Bash
,该shell
密钥位于HKEY_CLASSES_ROOT\Directory\Background\shell
Icon
(不是新密钥!)添加到git-bash.exe的完整路径,包括git-bash.exe部分。您可能需要将其用引号引起来。Bash
要在上下文菜单中使用的文本
Bash
调用添加一个子键command
command
的默认值修改为cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit
然后,您应该能够关闭注册表,并从真实目录中的任何位置开始使用Git Bash。例如,This PC
不是真实目录。
HKEY_CLASSES_ROOT\Directory\Background\shell\git_shell\command
是"C:\Program Files\Git\git-bash.exe" "--cd=%v."
这是可以直接在中执行的命令Run dialog box
(快捷键为win+ R),也可以很好地保存为.bat
脚本:
cmd /c (start /d "/path/to/dir" bash --login) && exit
/b
赢得10的
我不熟悉Git Bash,但是假设它是一个git shell(例如git-sh
),/path/to/my/gitshell
并且您最喜欢的终端程序称为“ myterm”,则可以编写以下脚本:
(cd dir1; myterm -e /path/to/my/gitshell) &
(cd dir2; myterm -e /path/to/my/gitshell) &
...
注意,-e
执行参数可能与您喜欢的终端程序的名称不同。
myterm
是通过MSYS / MinGW添加的cmd.exe。要启动新的cmd,请使用Windows特定的start
命令,然后使用Git Bash的路径sh.exe
,然后使用所需的任何命令行选项。我的答案提供了详细信息。
我可能给出了错误的方向,但是,我喜欢这个技巧。
使用Windows资源管理器,指向所需的任何目录,在地址栏中键入“ cmd”,它将在该目录中打开Windows命令提示符。
如果您的路径中有“ Git”目录,则可以用相同的方式在地址栏中键入“ git-bash”,然后将在该目录中打开一个Git Shell。