将Windows命令的输出存储在batch file中

我需要将命令行的输出存储在variables中。 我怎样才能做到这一点?

提供了一个简单的batch filetest.cmd的内容:

 echo jscott 

您可以使用以下命令行将输出设置为variables:

 FOR /F "tokens=*" %a in ('test.cmd') do SET OUTPUT=%a 

在命令行中使用像这样:

 C:\>SET OUTPUT Environment variable OUTPUT not defined C:\>FOR /F "tokens=*" %a in ('test.cmd') do SET OUTPUT=%a C:\>ECHO %OUTPUT% jscott 

如果要在batch file中使用FOR ,而不是命令行,则需要将%a更改为%%a

这是我如何做到这一点:

 vol c: > result.txt set /p DATA=<result.txt echo %DATA% del result.txt 

如果result.txt的行数超过1行,则只有文件的第一行用于%DATA%。 你也可以把result.txt放入一个variables本身,比如%OUTPUT%。

您可以将命令转换为如下所示的内容:

 command > somefile 

你在上面看到的将输出发送到一个命名文件。 如果文件不存在,则创build一个。 覆盖现有的文件你也可以这样做:

 command >> somefile 

这将输出附加到指定文件的内容,或者如果不存在,则创build一个文件

另请参阅: 使用命令redirect操作符