CppCheck从Powershell输出到xml文件

时间:2012-10-23 12:45:30

标签: powershell teamcity cppcheck teamcity-7.1

我想在我们的代码上运行CppCheck作为构建的一部分。但是,如果不从命令提示符执行,我无法将输出保存到文件中。

从常规(Windows)命令提示符或.bat文件中的硬编码路径,以下工作正常:

"C:\Program Files\Cppcheck\CppCheck.exe" --enable=all  --xml-version=2 "<full_path_with_spaces_to_source>" 2> cppcheck_result.xml

但是,我想从脚本运行它,例如电源外壳。我试过这个:

& 'C:\Program Files (x86)\Cppcheck\cppcheck.exe' --enable=all --xml-version=2 $CheckPath | Out-File cppcheck_ps.xml

但是这会将检查的文件传输到xml文件中,xml结果会显示在Powershell的输出窗格中。

我还尝试直接从构建服务器(TeamCity)运行exe文件作为命令行构建步骤,但是没有创建输出文件!执行检查并在构建日志中看到正常输出,但不知何故2> 1。迷路了。我正在使用TeamCity版本7.1.1。

我已经搜遍了我能想到的任何地方,而我能找到的最接近的是This

但这对我没用,所以任何帮助都会非常感激。

或者,如果您知道更好的方法来运行CppCheck并获得结果,请告诉我。

2 个答案:

答案 0 :(得分:0)

我没有这个工具,但如果你需要从中捕获stderr,请尝试:

& '.\cppcheck.exe' --enable=all --xml-version=2 $CheckPath 2>&1 | Out-File cppcheck_ps.xml

注意我删除了exe的完整路径只是为了缩短显示命令。

答案 1 :(得分:0)

我对powershell的工作方式一无所知。但是如果你必须使用2&gt;&amp; 1而不是2&gt;那么你当然也会收到stdout消息。但是你可以使用cppcheck标志--quiet或-q跳过stdout输出。