运行 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
我获得了一个 .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