运行 mintty 中的 .bat 文件

Running .bat file in mintty

我获得了一个 .bat 文件,我需要执行一些脚本。我有 Git bash 用于 Windows 的 mintty 控制台,想从那里 运行 它。从普通的 Windows 控制台可以正常工作,但在 mintty 中我得到:

$ script.bat
bash: script.bat: command not found

我该怎么做?

cmd /c script.bat

cmd /c "$( cygpath -w "/full/path/to/script.bat" )"

请注意,MS 和 Cygwin 中的路径语法不兼容。所以你需要相互转换,如果你需要运行脚本使用绝对或相对路径直到脚本。

更新

发布我的答案后,我进行了一些测试,创建了批处理文件并 运行 直接在 Cygwin/minty 中对其进行了测试。无论是否使用 cmd /c,它都能正常工作。 $COMSPEC已设置,Cygwin版本为1.7.25(不新鲜但涵盖了我的很多作品)。

您可能试图执行位于当前目录中的 script.bat。 Windows 命令提示符首先搜索当前目录,找到脚本并执行它。 Bash 从不在当前目录中搜索可执行文件,它只在 $PATH 中声明的路径中查找文件。

为了 运行 位于 $PATH 中未指定路径中的程序,在 Bash 中,您必须使用包含斜杠 (/).这意味着要从当前目录中 运行 .bat 脚本,您必须将其调用为:

$ ./script.bat