从Windows命令提示符中调用MSYS bash

14
我正在Windows 7上使用TDM构建的GCC。我安装了MSYS以便能够执行Make并使用makefiles进行编译。然而,每次启动MSYS Bash shell,导航到项目目录并运行make都很繁琐。
我想要自动化这个过程。我更喜欢在Windows中有一个批处理文件或类似的东西,从中调用MSYS Bash shell。它应该导航到批处理文件所在的目录并调用make
这可能吗?我可以从cmd向MSYS Bash发送命令(如导航/调用make)吗?或者我可以让MSYS Bash运行“Bash脚本”,类似于批处理脚本设置要执行的命令吗?
PS:这类似于Stack Overflow问题Executing MSYS from cmd.exe with arguments
4个回答

12

我不是MSYS的专家,但这种方法是否适用于您:

rem Call this something like compile-project.bat
c:
cd \src\project
bash -c "make"

9
您不必使用bash来执行make或其他MSYS程序。如果您将MSYS bin目录放在路径上,可以从Windows命令行 shell 中执行它们。此外,bash shell 内置了一个非常强大的脚本语言。但我不确定这是否是您所问的 - 您应该通过实际示例澄清您想要自动化的步骤。
我的设置是有一个名为“Bash here”的 Windows Explorer 上下文菜单,它会在我选择的目录中打开一个 bash shell。这是通过以下注册表条目完成的:
[HKEY_CLASSES_ROOT\Directory\shell\mybash]
@="Bash Here"

[HKEY_CLASSES_ROOT\Directory\shell\mybash\command]
@="cmd /c c:\\bash.cmd %1"

以下是位于C盘的bash.cmd文件:

@echo off
title bash
cd %1%
bash

请注意,MSYS的bin目录已添加到我的路径中。当然,任何修改注册表的操作都存在风险,请自行决定是否进行。

这很好用,不过我需要使用 /k 而不是 /c 来保持控制台打开。 - Brian Burns

3

只需将可执行文件添加到Windows PATH中:

C:\msys64\mingw64\bin
C:\msys64\usr\bin

请注意,这会向您的路径添加许多可执行文件,可能会与其他应用程序冲突。 ..\usr\bin 目录包含所有已安装的 MSYS2 包。有很多不必要的东西。 ..mingw64\bin 目录中列出的内容较少。

来源


2

在我使用安装了MSYS开发者套件的MSYS-1.0.11上,我可以通过以下命令在当前文件夹中调用一个名为CurrentScript.sh的bash脚本:

R:\MinGW\MSYS-1.0.11\bin\sh "%cd%\CurrentScript.sh"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接