从Windows cmd调用MSYS bash

Tac*_*lff 6 c c++ gcc makefile msys

我在Windows 7上使用GCC(使用TDM的构建).我安装了MSYS,可以使用makefile 执行Make和编译.但是,每次启动MSYS Bash shell,导航到项目目录并运行都很繁琐make.

我想要的是自动化这个过程.我更喜欢在Windows中有一个批处理文件,或类似的东西,然后我从中调用MSYS Bash shell.它应该导航到批处理文件所在的目录并调用make.

这可能吗?我可以从cmd向MSYS Bash发送命令(如导航/调用make)吗?或者我可以让MSYS Bash运行"Bash脚本",它将命令设置为像批处理脚本一样执行?

PS:这类似于Stack Overflow问题从带有参数的cmd.exe执行MSYS.

msa*_*ord 10

不是MSYS专家,但做这样的事情对你有用:

rem Call this something like compile-project.bat
c:
cd \src\project
bash -c "make"
Run Code Online (Sandbox Code Playgroud)


小智 7

您不必使用bash来执行make或任何其他MSYS程序.如果将MSYS bin目录放在路径上,则可以从Windows命令shell执行它们.另外,在bash shell中内置了一个极其强大的脚本语言,但我并不清楚,如果这是你所问的有关 - 你应该用你想要做什么,拼写出你想要的步骤,一个实际的例子阐明你的问题自动化.

我自己的设置是有一个名为"Bash here"的Windows资源管理器上下文菜单,它在我选择的目录中打开一个bash shell.这是通过以下注册表项完成的:

[HKEY_CLASSES_ROOT\Directory\shell\mybash]
@="Bash Here"

[HKEY_CLASSES_ROOT\Directory\shell\mybash\command]
@="cmd /c c:\\bash.cmd %1"
Run Code Online (Sandbox Code Playgroud)

以及c ::中的以下bash.cmd文件

@echo off
title bash
cd %1%
bash
Run Code Online (Sandbox Code Playgroud)

请注意,MSYS bin目录位于我的路径上.当然,任何注册表黑客攻击都需要您自担风险.