12

我在 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 问题Executing MSYS from cmd.exe with arguments

4

4 回答 4

11

不是 MSYS 专家,但可以为您做这样的事情:

rem Call this something like compile-project.bat
c:
cd \src\project
bash -c "make"
于 2010-05-02T09:30:37.057 回答
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"

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

@echo off
title bash
cd %1%
bash

请注意,MSYS bin 目录在我的路径上。当然,任何注册表黑客行为都需要您自担风险。

于 2010-05-02T09:50:38.970 回答
2

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

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

请记住,这会在您的路径中添加许多可能与其他应用程序冲突的可执行文件。该..\usr\bin目录包含所有已安装的 MSYS2 软件包。有很多不必要的东西。..mingw64\bin目录有一个较小的列表。

来源

于 2021-03-24T10:52:47.290 回答
1

在我的 MSYS 开发人员包中,我可以使用以下命令在当前文件夹中MSYS-1.0.11调用带有 cmd/bat 文件的 bash 脚本 ( ):CurrentScript.sh

R:\MinGW\MSYS-1.0.11\bin\sh "%cd%\CurrentScript.sh"
于 2016-02-23T19:01:22.410 回答