如何在Windows普通终端直接运行含Git命令的脚本(无需启动Git Bash)
解决方法
有两种可行方案让你直接在Windows普通终端(CMD/PowerShell)执行脚本完成Git提交操作:
方案一:转换为纯Windows批处理脚本
将原Shell脚本逻辑改写为Windows批处理语法,保存为thisfile.bat,直接在终端运行即可:
@echo off rem 启动SSH代理并加载密钥 call "%ProgramFiles%\Git\usr\bin\ssh-agent.exe" > temp_ssh_env.bat call temp_ssh_env.bat del temp_ssh_env.bat call "%ProgramFiles%\Git\usr\bin\ssh-add.exe" "C:\Users\sdl96354\.ssh\id_ed25519_laustep" rem 执行Git提交流程 git add -A git commit -m "%~1" git push
说明:
@echo off关闭命令行回显,让输出更简洁- 借助Git自带的
ssh-agent.exe和ssh-add.exe完成SSH密钥加载(路径对应Git默认安装位置,若你的Git安装在自定义路径,需修改对应路径) %~1用于接收终端传入的提交信息,自动处理带空格的内容
方案二:通过批处理自动调用Git Bash执行原逻辑
如果你想保留原Shell脚本的逻辑,可编写一个批处理文件自动启动Git Bash并执行脚本:
@echo off set "COMMIT_MSG=%~1" "%ProgramFiles%\Git\bin\bash.exe" -c "eval \"$(ssh-agent -s)\"; ssh-add /c/Users/sdl96354/.ssh/id_ed25519_laustep; git add -A; git commit -m '%COMMIT_MSG%'; git push"
说明:
- 批处理会自动调用Git Bash的
bash.exe,将原Shell命令作为参数传入执行 %~1捕获提交信息后传递给Shell脚本,确保带空格的信息能正确识别
使用时直接在普通终端输入:
thisfile.bat "你的提交信息"
内容的提问来源于stack exchange,提问作者Stéphane Laurent
相关产品推荐
相关产品推荐

