我可以通过多种方式通过 Windows 命令提示符启动 git-bash:
"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 增强编辑器中执行此操作的。实际调用是
%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.
是否可以从 Windows 命令提示符在特定目录中启动 git-bash?如果可以,正确的语法是什么?
奖金: 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
- 笔记:您可能需要指定完整路径命令(例如,C:\Windows\System32\cmd.exe...)
现在只需单击任务栏上的命令即可一键运行脚本。