0

我使用批处理文件中的 ebook-convert.exe,在我的一台机器(旧的 Windows vista 笔记本电脑)上,任何调用 ebook-convert.exe 都会阻止批处理文件中的进一步命令运行(在那个 .bat 文件中,或者例如那个 cmd shell 实例)。到 .mobi 的转换实际上成功了,即使在 -v -v 完全详细模式下也不会打印任何错误。我尝试了 1.20.0 和 0.9.6 版本的 calibre 便携版。它似乎与可执行文件本身有关,而不是与特定的转换作业有关(仅使用 -h 标志运行它具有相同的效果)。我尝试在管理员模式下运行 cmd,用“call”命令包装它,没有任何帮助。假设口径问题是一个无法解决的黑洞,是否有一个 DOS 技巧我可以尝试保持批处理命令运行,无论该机器上的 ebook-convert.exe 发生什么奇怪的事情?

4

1 回答 1

0

在批处理文件中使用call应该可以在普通的控制台程序上使用,但是如果程序真的想要,它们可以“逃脱”。

使用Startinstead 可能会起作用,但默认情况下它不会等待,并且它的语法不健全:

 Start /B /WAIT c:\path\without\spaces.exe optionalParameter

或者

 Start "" /B /WAIT "c:\path\w i t h\spaces.exe" optionalParameter

删除/B以在新控制台中运行应用程序。

另一种选择是在循环中调用ping localhostand For(使用 获取文件大小%%~zA),直到目标文件的大小停止增加。这有点小技巧,可能不起作用,这取决于转换器如何打开文件以及刷新写入的频率。

于 2017-02-25T02:33:57.097 回答