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