如何使用一个程序生成的输出文件作为另一个程序的输入?批处理文件

How do I use the output file generated from a program as the input for another program? batch file

我正在 运行 使用 Visual Studio 进行单元测试,它将此作为 cmd 上的命令:

vstest.console.exe C:\Desktop\Project\UnitTests\Debug\UnitTests.dll /Logger:trx

一旦执行,它就会生成一个 .trx 文件(visual studio 测试结果文件)。接下来,我想通过一个名为 trx2html 的程序获取此文件并 运行 它,该程序将从中生成一个可读格式的 html 文件。这个命令是:

trx2html.exe trxResultFile

这看起来相当简单,但我似乎无法让第二部分工作。我的问题是第一个程序生成了一个文件名,所以我不能只在 trx2html.exe.

之后键入这个文件名

到目前为止,这是我的 bat 文件:

@echo %1

SET ProjectPath=%1
SET VsTest=vstest.console.exe %ProjectPath% /Logger:trx
SET TestWindowPath="C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"
SET TestResults="C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\TestResults\"

cd /d %TestWindowPath%

pause

%VsTest%

trx2html.exe "%TestResults% | %VsTest%"

任何帮助将不胜感激,在此先感谢。

这是我使用的解决方案:

cd /d %TestResults%

for /f "delims=" %%x in ('dir /od /a-d /b *.*') do set RECENT=%%x
echo %RECENT%

SET trx=trx2html.exe "%RECENT%"

%trx%

和整个程序:

@echo %1

SET ProjectPath=%1
SET VsTest=vstest.console.exe %ProjectPath% /Logger:trx


SET TestWindowPath="C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow"

SET TestResults=C:\Program Files\Microsoft Visual Studio 12.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\TestResults\

cd /d %TestWindowPath%

%VsTest%

cd /d %TestResults%

for /f "delims=" %%x in ('dir /od /a-d /b *.*') do set RECENT=%%x
echo %RECENT%

SET trx=trx2html.exe "%RECENT%"

%trx%