我提供了一个 .bat 文件,我需要执行一些脚本。我有适用于 Windows 的 Git bash mintty 控制台,并希望从那里运行它。从普通的 Windows 控制台它可以正常工作,但在薄荷糖中我得到:
$ script.bat
bash: script.bat: command not found
我该怎么做呢 ?
我提供了一个 .bat 文件,我需要执行一些脚本。我有适用于 Windows 的 Git bash mintty 控制台,并希望从那里运行它。从普通的 Windows 控制台它可以正常工作,但在薄荷糖中我得到:
$ script.bat
bash: script.bat: command not found
我该怎么做呢 ?
您可能尝试执行script.bat
位于当前目录中的那个。Windows 命令提示符首先搜索当前目录,找到脚本并执行它。Bash 从不搜索当前目录中的可执行文件,它仅在$PATH
.
为了运行位于未在 中指定的路径中的程序$PATH
,在 Bash 中,您必须使用包含斜杠 ( /
) 的路径来调用它。这意味着.bat
要从当前目录运行脚本,您必须将其调用为:
$ ./script.bat
cmd /c script.bat
或者
cmd /c "$( cygpath -w "/full/path/to/script.bat" )"
请注意,MS 和 Cygwin 中的路径具有不兼容的语法。所以你需要相互转换,如果你需要使用绝对或相对路径运行脚本直到脚本。
更新
发布我的答案后,我做了一些测试,创建批处理文件并直接在 Cygwin/minty 中运行它。它在有和没有的情况下都能正常工作cmd /c
。$COMSPEC
已设置,Cygwin 版本为 1.7.25(不新鲜但涵盖了我的很多作品)。