Thunderbird 打开后批处理脚本暂停

Thunderbird 打开后批处理脚本暂停

我希望能够通过 Windows 中的批处理脚本打开 Thunderbird。我可以通过命令行顺利完成此操作:

C:\>"C:\Program Files\Mozilla Thunderbird\thunderbird.exe"

如果我创建一个如下所示的批处理脚本:

"C:\Program Files\Mozilla Thunderbird\thunderbird.exe"

并从命令行执行它:

C:\>t.cmd
C:\>"C:\Program Files\Mozilla Thunderbird\thunderbird.exe"

Thunderbird 打开了,但是脚本停止了(它没有退出)。

如果我手动关闭 Thunderbird,脚本就会退出。

我已经有一段时间没有使用批处理脚本了。我做错了什么吗?

编辑:如果 Thunderbird 已经打开,脚本就会正常退出。很奇怪。

答案1

尝试

启动/d“C:\ Program Files \ Mozilla Thunderbird” thunderbird.exe

答案2

正如 Systech 所建议的,该start命令就是您要寻找的运行程序的命令,而不是等待它终止后再继续。

当 Thunderbird 已在运行时,您会看到不同的行为,原因是它只允许一个副本运行。第二个副本会检测第一个副本,并在离开之前将其置于焦点位置(因此实际上会立即将控制权返回到批处理脚本)。如果您调用允许多个实例运行的应用程序(如果您想亲自测试一下,记事本会做类似的事情),您将看不到行为上的差异。

答案3

脚本停滞的原因是因为它正在等待 Thunderbird 完成并将控制权返回给批处理文件。

您需要按照 Systech 的建议使用“/d”选项。

答案4

因此,如果您想从 Windows 命令行或批处理文件运行 T'bird,我已经知道如何操作。您可能已经注意到,使用带有任何参数组合的启动命令并不能实现您真正想要的效果。

第一步是创建一个 Windows Scripting Host 命令文件。将其放在与 T'bird 可执行文件相同的目录中,可以将其命名为 tbird.wsf:

<job>
<script language="VBScript">
Set WshShell = CreateObject("WScript.Shell")
cmds=WshShell.RUN("cmd /c thunderbird.exe", 0, False)
</script>
</job>

获得该文件后,即可从命令行或批处理文件调用它,如下所示:

cscript tbird.wsf

当然,这会使一个额外的进程停留在你的系统中,直到你关闭 T'bird 才会停止。但我认为这确实实现了许多人想要的。

相关内容