Назад | Перейти на главную страницу

Сохранить вывод команды Windows в пакетном файле

Мне нужно сохранить вывод командной строки в переменной. Как я могу это сделать?

Предоставляется простой командный файл 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.

Вот как я это делаю:

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

Если в файле result.txt больше одной строки, для% DATA% используется только верхняя строка файла. Вы также можете превратить result.txt в саму переменную, например% OUTPUT%.

Вы можете передать команду примерно так:

command > somefile

То, что вы видите выше, отправляет вывод в именованный файл. Если файл не существует, он его создает. Заменяет существующий файл. Вы также можете сделать это:

command >> somefile

Это добавляет вывод к содержимому именованного файла или создает файл, если его нет.

Смотрите также здесь: Использование операторов перенаправления команд