如何将这样的命令输出到变量
How can get output of command like this to a variable
如何将此命令的输出输出到变量。
wevtutil qe system "/q:*[System [(EventID=1074)]]" /rd:true /f:text /c:1 | findstr /i "date"
我的解决方案不起作用
FOR /F %i IN ('wevtutil qe system "/q:*[System [(EventID=1074)]]" /rd:true /f:text /c:1 | findstr /i "date"') DO set VARIABLE=%i
echo %VARIABLE%
运算符需要在括号中进行转义。 |变成 (^|),也变成 ( ^& ^> ^^ )
您必须“转义”|
以告诉解析器它是内部命令的一部分 (for ... in ('command') ...
)。如果不转义,它会过早结束 for
命令,导致 script-breaking 错误。
同样在批处理文件中,您必须将元变量的 %
加倍。
第三,for
仅获取第一个标记(“单词”),但没有指定要使用的标记以及使用哪些定界符来分隔它们。
@echo off
FOR /F "delims=" %%i IN ('wevtutil qe system "/q:*[System [(EventID=1074)]]" /rd:true /f:text /c:1 ^| findstr /i "date"') DO set VARIABLE=%%i
echo %VARIABLE%
要仅获取日期,请使用 "tokens=2"
而不是 "delims="
(获取第二个标记(“单词”),使用标准分隔符 space、制表符、逗号)
如何将此命令的输出输出到变量。
wevtutil qe system "/q:*[System [(EventID=1074)]]" /rd:true /f:text /c:1 | findstr /i "date"
我的解决方案不起作用
FOR /F %i IN ('wevtutil qe system "/q:*[System [(EventID=1074)]]" /rd:true /f:text /c:1 | findstr /i "date"') DO set VARIABLE=%i
echo %VARIABLE%
运算符需要在括号中进行转义。 |变成 (^|),也变成 ( ^& ^> ^^ )
您必须“转义”|
以告诉解析器它是内部命令的一部分 (for ... in ('command') ...
)。如果不转义,它会过早结束 for
命令,导致 script-breaking 错误。
同样在批处理文件中,您必须将元变量的 %
加倍。
第三,for
仅获取第一个标记(“单词”),但没有指定要使用的标记以及使用哪些定界符来分隔它们。
@echo off
FOR /F "delims=" %%i IN ('wevtutil qe system "/q:*[System [(EventID=1074)]]" /rd:true /f:text /c:1 ^| findstr /i "date"') DO set VARIABLE=%%i
echo %VARIABLE%
要仅获取日期,请使用 "tokens=2"
而不是 "delims="
(获取第二个标记(“单词”),使用标准分隔符 space、制表符、逗号)