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