将 Windows 命令的输出存储在批处理文件中

将 Windows 命令的输出存储在批处理文件中

我需要将命令行的输出存储在变量中。我该怎么做?

答案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

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

另请参阅此处: 使用命令重定向运算符

相关内容