17

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

1

3 Answers 3

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.

2
  • Your prompt doesn't have > for some reason which makes reading the commands more difficult since "C:\SET", for example, starts out looking like a path. Mar 10, 2011 at 15:22
  • @Dennis Edited. Sorry about that, should have used copy/paste.
    – jscott
    Mar 10, 2011 at 15:42
5

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%.

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

2
  • 6
    Would you please expand your answer to explain how this stores anything in a variable?
    – jscott
    Mar 10, 2011 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 Mar 10, 2011 at 13:50

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.