我有一个调用Saxon进行XSLT转换的批处理文件。对于某些文件,Saxon给了我一个错误。这将出现在一个新的命令行窗口中,该窗口打开约1秒钟,然后关闭。我试图在文件中捕获该错误消息。
这是批处理文件的相关部分:
start /wait "" "C:\Program Files\Saxonica\SaxonHE9.6N\bin\Transform.exe" -s:"file.xml" -xsl:fixerrors.xslt -o:"output.xml" 1>>fixerrors.log 2>&1
创建了fixerrors.log文件,但即使Saxon遇到错误并创建了新的命令行窗口,它仍保持为空。
我能够从这样的其他程序捕获错误消息,因此使用1>>fixerrors.log
的想法本身并没有错。这似乎是撒克逊人特有的。
答案 0 :(得分:0)
尝试了@Gerhard Barnard提出的两种方法:
start /wait "" "C:\Program Files\Saxonica\SaxonHE9.6N\bin\Transform.exe" -s:"%~n1 - original.xml" -xsl:fixerrors.xslt -o:"%~n1.xml" 1>>fixerrors.log 2>&1 & type fixerrors.log
不起作用,Saxon错误不会放在日志文件中。
"C:\Program Files\Saxonica\SaxonHE9.6N\bin\Transform.exe" -s:"%~n1 - original.xml" -xsl:fixerrors.xslt -o:"%~n1.xml" 1>>fixerrors.log 2>&1
确实有效,错误消息放在日志文件中(实际上,它们被放置了两次,因为我将标准错误和标准输出重定向到文件中)。