我需要将命令行的输出存储在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操作符