将Windows Battch命令输出发送到变量

时间:2015-06-24 14:11:16

标签: batch-file

我在Windows批处理文件中有以下内容

my_app < "%%PARAMETER_FOR_APP" 

应用程序成功执行,并向控制台输出三行。

我想捕获该输出,以便能够将其保存到日志文件中。

我正在尝试这个:

set LOG_FILE_NAME = mylog.log
my_app < "%%PARAMETER_FOR_APP" > COMMAND_OUTPUT
echo %COMMAND_OUTPUT%
echo %COMMAND_OUTPUT% >> %LOG_FILE_NAME%

我期待创建一个变量COMMAND_OUTPUT,然后我可以使用eccho命令。但是,在文件系统上创建了空文件COMMAND_OUTPUT

这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

FOR /F是在批处理文件中获取命令输出的标准方法。 在您的情况下,您还需要使用^

转义重定向
for /f "tokens=* delims=" %%# in ('my_app ^< "%%PARAMETER_FOR_APP" ') do set "COMMAND_OUTPUT=%%#"

试试这个。