为什么MSYS2不解析Windows上的批处理文件?

时间:2015-06-03 03:06:14

标签: windows msys mingw-w64 msys2

为了避免将长命令重新命名为MSYS进行配置,我通常使用批处理文件来存储命令,如下所示: ./configure \ --arch=x86_64 \ --target-os=win64 \ --toolchain=msvc \ --enable-cross-compile \ --enable-gpl \ --disable-debug \ --enable-shared \

这种方式适用于MSYS。但是当我在MSYS2中运行批处理文件时,它会找出许多错误消息,如:

'.' is not recognized as an internal or external command, operable program or batch file. '--arch' is not recognized as an internal or external command, operable program or batch file. etc...

任何人都可以解释一下原因是什么吗?

1 个答案:

答案 0 :(得分:0)

正如您所示,您的“批处理”文件看起来更像是Bourne shell脚本,因此它绝对不应该被限定为.bat文件。现在,如果您限定为.bat文件,则MSYS将无法直接运行它;它需要一个shebang行来使它可以作为shell脚本执行。从您显示的错误消息中可以看出,MSYS2可能试图通过将执行权交给Windows命令解释器而以MSYS不这样做的方式变得聪明(那些是cmd.exe错误消息);由于脚本采用Bourne shell语法,因此您希望MSYS2直接在bash中运行它。

BTW,MSYS shell bash; AFAIK,MSYS2也提供bash作为其主要外壳。