使用批处理脚本在特定目录中启动Git-Bash窗口

问题描述

平时想要在项目目录中输入git命令,我需要先打开git-bash窗口,然后还要cd到项目目录中。这挺麻烦的。我现在想:
通过批处理脚本,直接在某个目录中启动git-bash窗口。

实现

在项目目录下,创建一个批处理脚本(StartGitBash.bat)文件,写入如下的命令:

start F:\Program" "Files\Git\git-bash.exe --cd=D:\dev\workspace\HexoTools

命令解释start用于启动一个窗口F:\Program" "Files\Git\git-bash.exegit-bash的路径,注意路径中间的空格要用引号包起来--cd=D:\dev\workspace\HexoTools指定git-bash的启动目录为D:\dev\workspace\HexoTools,点击批处理在项目目录下打开git-bash

现在我只要点击项目目录下的StartGitBash.bat:

就可在项目目录下打开git-bash了:

升级

上面的实现方式虽然可以快速某个项目中打开git-bash.exe,但是这种实现方式不通用,所以我改进了一下,通过输入项目路径来快速在该目录下快速打开git-bash.exe。为了后面调用的时候少打点字,我把文件名改为StartGit.bat,代码如下:

@echo offset /P input="输入要在git-bash中打开的项目路径:"start F:\Program" "Files\Git\git-bash.exe --cd=%input%

通过Win+R调用

然后把这个StartGit.bat所在的目录放到path环境变量中,这样就可以通过win+r调用了,调用的步骤为:

复制一个项目的路径.

win+R

打开运行,输入StartGit然后回车(大小写无所谓).

然后粘贴项目路径,按回车,这样就可以快速在Git-bash.exe中快速进入该项目路径了.

运行效果如下:

参考资料

如何使用脚本启动具有特定工作目录的Git Bash窗口?

Windows 10

这基本上是@ lengxuehx的答案,但是针对Win 10进行了更新,它假设你的bash安装来自git官方下载的 Git Bash for Windows。

cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit

在我丢失Git Bash的上下文菜单项作为我从命令注册表设置运行的命令后,我最终使用了这个。 如果你对此感到好奇,我这样做了:

  1. 在HKEY_CLASSES_ROOT\Directory\Background\shell的shell键中创建一个名为Bash的新键
  2. 将字符串值添加到Icon (不是新密钥!),它是git-bash.exe的完整路径,包括git-bash.exe部分。 您可能需要将其包装在引号中。
  3. 在上下文菜单中将Bash的默认值编辑为要使用的文本
  4. 在Bash添加一个名为command的子键
  5. 将command的默认值修改为cmd /c (start /b "%cd%" "C:\Program Files\GitW\git-bash.exe") && exit

然后你应该能够关闭注册表并从任何真正的目录开始使用Git Bash。 例如, This PC不是真正的目录。

如何使用脚本(bash或Windows批处理)启动具有指定工作目录的新Git Bash窗口?

我的目标是从单个脚本启动多个Git Bash窗口,每个窗口都设置为不同的工作目录。 通过这种方式,我可以在启动计算机后快速开始工作,而不必打开Git Bash窗口并将每个窗口导航到正确的工作目录。

编辑:我不是问如何更改默认工作目录,就像这个问题一样,而是从脚本启动一个或多个具有不同工作目录的终端窗口。

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位于C:\ Program Files \ Git中,它将是:

"C:\Program Files\Git\git-bash.exe" --cd="e:\SomeFolder"

如果在注册表项中使用,则可以使用%1提供文件夹参数:

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

我不熟悉Git Bash,但假设它是一个位于/path/to/my/gitshell的git shell(例如git-sh ),而你最喜欢的终端程序叫做`myterm',你可以编写以下脚本:

(cd dir1; myterm -e /path/to/my/gitshell) &
(cd dir2; myterm -e /path/to/my/gitshell) & ...

请注意,执行的参数-e可能与您最喜欢的终端程序命名不同。

这是可以在Run dialog box直接执行的命令(快捷键是win + R ),也可以保存为.bat脚本:

cmd /c (start /d "/path/to/dir" bash --login) && exit

补充

idea中可以直接设置terminal为git-bash
nice 这个方法好,不用进入工作目录再右键了

以上就是使用批处理脚本在特定目录中启动Git-Bash窗口的详细内容,更多关于批处理启动Git-Bash窗口的资料请关注我们其它相关文章!

(0)

相关推荐

  • 使用批处理脚本在特定目录中启动Git-Bash窗口

    问题描述 平时想要在项目目录中输入git命令,我需要先打开git-bash窗口,然后还要cd到项目目录中.这挺麻烦的.我现在想: 通过批处理脚本,直接在某个目录中启动git-bash窗口. 实现 在项目目录下,创建一个批处理脚本(StartGitBash.bat)文件,写入如下的命令: start F:\Program" "Files\Git\git-bash.exe --cd=D:\dev\workspace\HexoTools 命令解释start用于启动一个窗口F:\Program

  • Windows server利用批处理脚本判断端口启动tomcat的方法

    win server服务器上面的tomcat老是不定时挂掉, 于是利用定时操作脚本判断tomcat80端口是否在运行, 如果运行则放过, 如果down掉就启动tomcat,解决tomcat不定时挂掉导致业务数据流通丢失问题.不扯淡, 上脚本. 1.给tomcat赋予环境变量 变量名:CATALINA_HOME 路径:C:\Program Files\Java\apache-tomcat-8.0.35 2.批处理脚本(startTomcat.bat) ::Final interpretation

  • Windows注册表中修改UAC(用户账号控制)及批处理脚本

    注册表路径: HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows/CurrentVersion/Policies/System 键说明: ConsentPromptBehaviorAdmin:通知强度级别 EnableLUA:是否关闭UAC PromptOnSecureDesktop:桌面是否变黑 1:UAC高 ConsentPromptBehaviorAdmin:2 EnableLUA:1 PromptOnSecureDesktop:1 2:UAC中 C

  • DOS批处理脚本语言简介与详细说明

    一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当 前回显设置. 语法 echo [{on off}] [message] Sample:@echo off / echo hello world 在实际应用中我们会把这条命令和重定向符号(也称为管道符号,一般用> >> ^)结 合来实现输入一些命令到特定格式的文件中.这将在以后的例子中体现出来. 2.@ 命令 表示不显示@后面的命令,在入侵过程中(例如使用批处理

  • BAT 批处理脚本教程(详细篇脚本之家补充)

    第一章 批处理基础 第一节 常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD.这些命令统称批处理命令. 小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程. 了解了大概意思后,我们正式开始学习.先看一个简单的例子! @echo off echo "欢迎来到我们!" pause 把上面的3条命令保存为文件test.bat或者test.cmd然后执行, 他就会在屏幕上显示以下二行话

  • MySQL自动安装批处理脚本实例代码

    前言 作为强迫症患者,安装MySQL时必须使用zip模式安装,我的电脑我做主,但是问题来了,手动安装确实麻烦,我们不可能记住每一步操作,所以我自己写了一个批处理,供大家参考. MySQL5.7版本以上和MySQL5.7版本稍有不同哦! MySQL5.7以下版本脚本: @echo off echo. set stdir=%~dp0% echo [mysqld]>%stdir%my.ini echo ##数据库根路径>>%stdir%my.ini echo basedir=%stdir%&g

  • 实现android应用程序自动化测试的批处理脚本

    测试平台:兼容android所有平台(2.3-4.2) 测试背景:由于需要对产品的SDK做接口测试,而这些接口需要在app里面调用,故开发了一个简单的android应用(如图),用来调用需要测试的接口,app中的每个按钮其实都是一个测试模块. 测试需求: 1.由于某些接口在程序第一次安装打开时调用,需要实现自动化安装打开关闭卸载测试,可设置重复次数. 2.由于需要测试接口的稳定性,每个按钮每天都要跑多篇,所以实现简单点击的UI自动化,循环点击. 3.自动检查收集logcat日志并解析日志结果:自

  • Windows下bat批处理脚本使用telnet批量检测远程端口小记

    多年没写过批处理了,来新公司的第一个case却是需要写一个bat脚本,批量更新采集agent的配置文件,其中就涉及到远程IP的端口检测. 本以为会和Linux一样可以简单判断: 复制代码 代码如下: echo q|telnet -e 'q' $ip $port && echo "$ip:port 通"||echo "$ip:port 不通" 结果发现Windows下面telnet退出并没有执行结果的返回值: 一.借助工具 于是我优先开启懒人法则,找其

  • 使用批处理脚本自动生成并上传NuGet包(操作方法)

    Hello 大家好,我是TANZAME,我们又见面了. NuGet是什么这里就不再重复啰嗦,园子里一搜一大把.今天要跟大家分享的是,在日常开发过程中如何统一管理我们的包,如何通过批处理脚本生成包并自动上传到 NuGet.在实际项目开发过程中我们要上传自己的包,一般的步骤都是:nuget spec => nuget pack => nuget push,一个包都要至少重复三个动作,如果有 N个包那就要重复 N*3次,想想都不能忍,所以便有了今天的分享主题. 生成目录 既然是统一管理,生成的包自然

  • wget下载整个网站(整个子目录)或特定目录

    使用wget命令下载父目录下的整个子目录 使用wget命令下载父目录下的整个子目录,命令如下: wget -r --level=0 -E --ignore-length -x -k -p -erobots=off -np -N http://www.remote.com/remote/presentation/dir 将会下载远程服务器的整个文件夹下到你电脑当前文件目录下. 如何使用 wget 下载一个目录下的所有文件 wget -r -np -nH -R index.html http://u

随机推荐