输出forfiles错误到变量

时间:2016-07-01 17:56:50

标签: variables batch-file output

我试图将forfiles的输出批量保存到变量。

我已经尝试了一些事情来直接设置var到输出以及保存到文件

长话短说,我将输出文本与另一个字符串变量进行比较,如果匹配事件日志,我会收到警报。

除了将forfile输出保存到变量之外,我脚本中的所有内容都按预期工作,因此我可以将其与默认文本变量进行比较

forfiles / P%filename%/ D -1>变量 设置TEST =

变量只是完全空白。

如果我在命令提示符下运行命令,则输出如下

forfiles / P C:\ users \ justin.pcs \ desktop \ test \ / D -1>变量 错误:找不到具有指定搜索条件的文件。

所以我收到了我正在观察的错误,但变量保持空白。我假设我错过了某种必要的开关。

1 个答案:

答案 0 :(得分:0)

获取命令的输出,将STDERR重定向到文件并将其读回:

forfiles /P C:\users\justin.pcs\desktop\test\ /D -1  2>temp
<temp set /p variable=
echo %variable"%

或使用for构造(不需要临时文件):

for /f "delims=" %%a in ('forfiles /P C:\users\justin.pcs\desktop\test\ /D -1  2^>^&1 1^>nul') do set variable=%%a
echo %variable%

需要重定向(2^>^&1 1^>nul),因为解析了STDOUT,但是你需要STDERR。