如何仅在单行文本时输出命令?

时间:2016-10-10 22:57:56

标签: batch-file variables

在批处理文件中,我使用以下命令获取命令的输出:

for /f %%i in ('command') do set output=%%i

command应输出一行文字,在这种情况下,我会在%output%中得到预期的输出。

但是,command有时会输出几行文字,这表示错误。在这种情况下,我得到%output%中的最后一个,我不知道command输出的内容多于一行。

如何检查command何时输出多行文字?

注意:当有多行时,我不需要知道输出是什么;我只需知道输出了多行。

3 个答案:

答案 0 :(得分:2)

set "output="
for /f %%i in ('command') do if defined output (
echo "error"
) else (
set output=%%i
)

使用if defined解释目标变量

的运行时状态的事实

答案 1 :(得分:0)

cmd.exe /k "for /f %%i in ('command') do set output=%%i" > C:/Users/%username%/Desktop/Output.txt

答案 2 :(得分:-1)

......或者

for /f %%i in ('command 2^>nul') do set output=%%i

我们很难说我们什么时候不知道命令或错误输出