TeXstudio readAllStandardOutputStr 似乎不起作用

TeXstudio readAllStandardOutputStr 似乎不起作用

我尝试将自动时间戳插入到 LaTeX 文件中,以获取某些项目的 id。在 Windows 机器上,我得到了以下宏(JavaScript):

    %SCRIPT
    var res=system("c:\\cygwin\\bin\\bash.exe -c '/bin/date +%%s'");
    var timestamp=res.readAllStandardOutputStr();
    res.waitForFinished();
    editor.write(timestamp);

我可以在 TeXStudio 的消息屏幕上看到正确的结果(一个表示秒数的长数字):

    Prozess gestartet: c:\cygwin\bin\bash.exe -c '/bin/date +%s'
    1392656846
    Prozess endete normal

没什么特别的。我测试了退出代码,结果也不错。但似乎没有使用来收集 stdout,readAllStandardOutputStr()因为我看不到文件中出现任何内容。editor.write根据我尝试的测试,它似乎有效。放在readAllStandardOutputStr()后面waitForFinished()也没有帮助。感谢帮助或提示。

答案1

确实,标准输出为空。很可能在您调用之前,它已在消息面板内部读取(这可能是一个错误,或者至少是文档中的误导性描述)。对于您的情况,您可以使用以下代码:

%SCRIPT
var res=system("texdoc --version");
res.standardOutputRead.connect( function(output) {
    editor.write(output);
});
res.waitForFinished();

相关内容