我需要将命令行的输出存储在变量中。我该怎么做?
答案1
提供了一个简单的批处理文件test.cmd
,其内容如下:
echo jscott
您可以使用以下命令行将输出设置到变量中:
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
如果您想在批处理文件中使用FOR
,而不是命令行,则需要更改%a
为%%a
。
答案2
我是这样做的:
vol c: > result.txt
set /p DATA=<result.txt
echo %DATA%
del result.txt
如果 result.txt 有多于 1 行,则只有文件的第一行用于 %DATA%。您还可以将 result.txt 本身设为变量,例如 %OUTPUT%。
答案3
您可以将命令放入类似以下内容的管道中:
command > somefile
上面所见的内容将输出发送到命名文件。如果文件不存在,则创建一个。覆盖现有文件,您还可以执行以下操作:
command >> somefile
这会将输出附加到指定文件的内容中,如果不存在则创建一个文件
另请参阅此处: 使用命令重定向运算符