我使用批处理文件中ebook-convert.exe,且在我的一台机器(旧的Windows vista笔记本电脑)上,任何ebook-convert.exe调用都会阻止批处理文件(例如,在.bat文件或cmd shell实例中)中的其他命令运行。到.mobi的转换实际上是成功的,即使在-v -v full verbose模式下也不会打印错误。我尝试了calibre portable的1.20.0和0.9.6版本。它似乎与可执行文件本身相关,而与特定的转换作业无关(只需使用-h标志运行它就可以达到同样的效果)。我尝试在管理员模式下运行cmd,使用'call‘命令包装它,但没有任何帮助。假设calibre问题是一个无法解决的黑洞,有没有一个DOS技巧,我可以尝试让批处理命令运行,无论ebook-convert.exe在那台机器上发生了什么奇怪的事情?
发布于 2017-02-25 10:33:57
在批处理文件中使用call
应该可以在正常的控制台程序上工作,但如果程序真的想要“逃脱”,也是可能的。
改用Start
可能行得通,但默认情况下它不会等待,而且其语法也不合理:
Start /B /WAIT c:\path\without\spaces.exe optionalParameter
或
Start "" /B /WAIT "c:\path\w i t h\spaces.exe" optionalParameter
删除/B
以在新控制台中运行应用程序。
另一种选择是在循环中调用ping localhost
和For
(通过%%~zA
获取文件大小),直到目标文件的大小停止增加。这是一个小技巧,可能不起作用,这取决于转换器如何打开文件以及它刷新写入的频率。
https://stackoverflow.com/questions/42332824
复制相似问题