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

Moh*_*deh 12 windows command-line-interface batch-file

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

jsc*_*ott 15

提供了一个test.cmd包含内容的简单批处理文件:

echo jscott
Run Code Online (Sandbox Code Playgroud)

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

FOR /F "tokens=*" %a in ('test.cmd') do SET OUTPUT=%a
Run Code Online (Sandbox Code Playgroud)

像这样在命令行上使用:

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

如果要FOR在批处理文件中使用 ,而不是命令行,则需要更改%a%%a.


jft*_*uga 5

我就是这样做的:

vol c: > result.txt
set /p DATA=<result.txt
echo %DATA%
del result.txt
Run Code Online (Sandbox Code Playgroud)

如果 result.txt 超过 1 行,则仅文件的顶行用于 %DATA%。您还可以将 result.txt 设为变量本身,例如 %OUTPUT%。