当我在Cygwin中从bash执行.bat脚本时,它运行的是什么机制?我知道如果我运行.EXE它将启动,无论.EXE是来自Cygwin还是来自更传统的环境。我明白当我用#执行可执行脚本时!在一开始,Cygwin为它提供了运行的魔力。
但为什么.bat脚本有效? Cygwin中是否有一些组件知道Windows .bat脚本是什么以及如何处理它?或者是在Windows下某种程度上不可能执行调用来启动.EXE文件,而该文件不会自动也适用于.bat脚本?
答案 0 :(得分:13)
正在运行
./test.bat params
来自bash的似乎等同于
cmd /c test.bat params
答案 1 :(得分:11)
我相信cygwin中的bash将bat扩展视为被标记的可执行文件(对于Windows约定来说是一个cygwin hit-tip)。因此,它使用它的关联解释器(cmd.exe,per os配置)加载并执行文件,就像它创建一个新的bash实例来运行你的#!脚本(按照posix标准)。
答案 2 :(得分:1)
如果你想像ShellScript进程那样派生* .cmd文件执行并将他的日志追加到文件中:
cmd /c test.bat > nohup.out &
享受!