17

I need to store the output of a command line in a variable. How can I do this?

Ben Pilbrow
  • 11,995
  • 5
  • 35
  • 57
Mohammad AL-Rawabdeh
  • 1,592
  • 12
  • 30
  • 54
  • Duplicate if [How do I get the result of a command in a variable in windows?](http://stackoverflow.com/q/108439/12892) from Stack Overflow. – Cristian Ciupitu Jul 01 '14 at 16:56

3 Answers3

19

Provided a simple batch file test.cmd with the contents:

echo jscott

You can set the output into a variable with the following command line:

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

Used on the command line like this:

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

Should you want to use the FOR within a batch file, rather than command line, you need to change %a to %%a.

jscott
  • 24,204
  • 8
  • 77
  • 99
4

This is how I do this:

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

If result.txt has more than 1 line, only the top line of the file is used for %DATA%. You could also make result.txt into a variable itself, such as %OUTPUT%.

jftuga
  • 5,572
  • 4
  • 39
  • 50
0

You can pipe the command into something like:

command > somefile

What you see above sends the output to a named file. If file does not exist, it creates one. Overwrites existing file And you can also do this:

command >> somefile

This appends the output to contents of a named file or creates a file if none exists

See also here: Using command redirection operators

Sam Mackrill
  • 143
  • 1
  • 8
Guido van Brakel
  • 942
  • 5
  • 10
  • 6
    Would you please expand your answer to explain how this stores anything in a variable? – jscott Mar 10 '11 at 13:48
  • i want to store output in variable .... and i try this method but it is failed ansd the output of command : `commandline 1>fiel.txt` what is "1" mean ??? and the file didn't creat – Mohammad AL-Rawabdeh Mar 10 '11 at 13:50