Получить текст из файла в переменную (или результат работы команды)

Кирилл

Команда форума
Администратор
Сообщения
13,828
Реакции
6,169
Баллы
913
Я вот еще как то долго мучался с тем,как получать в значение переменной текст из файла например.
Или результат работы команды в переменную.
Можно тоже этот вопрос задеть?
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,908
Баллы
648
результат работы команды в переменную.
CMD/BATCH:
:: включаем поддержку дополнительных ключей
SetLocal EnableExtensions

For /F %%s in ('tasklist') do set var=%%s
echo %var%
pause
В данном случае в переменную сохранится последняя строка вывода команды tasklist.

Пример от Ramzes, пригодится, если из текстового файла нужно прочитать 1-ю строку.
 

maximax

Активный пользователь
Сообщения
2
Реакции
0
Баллы
81
Доброго времени суток.
Имеется большой SQL скрипт (150 000 строк кода).
Первые 3 строки содержат комментарии:
Код:
--Product=Skif_BP
--Patch_Header=Skif_BP
--Patch_Version=4.0.0.608 (25.02.2015)
Нужно получить в переменную значение Patch_Version, до даты выпуска патча, т.е. в данном случае 4.0.0.608.
Подскажите, как это реализовать на cmd (можно с использованием сторонних консольных утилит).
 

Dragokas

Very kind Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
6,132
Реакции
5,908
Баллы
648
Здравствуйте, maximax !

Воспользуйтесь таким скриптом.
CMD/BATCH:
@echo off
SetLocal EnableExtensions
set file=SQL.txt

For /F "UseBackQ tokens=1-2 delims==( " %%a in ("%file%") do if "%%a"=="--Patch_Version" set ver=%%b
echo Version=%ver%
pause
Файл должен быть в кодировке ANSI (не юникод).
 
Последнее редактирование:

maximax

Активный пользователь
Сообщения
2
Реакции
0
Баллы
81
Здравствуйте, maximax !

Воспользуйтесь таким скриптом.
CMD/BATCH:
@echo off
SetLocal EnableExtensions
set file=SQL.txt

For /F "UseBackQ tokens=1-2 delims==( " %%a in ("%file%") do if "%%a"=="--Patch_Version" set ver=%%b
echo Version=%ver%
pause
Файл должен быть в кодировке ANSI (не юникод).
Большое спасибо, всё работает. Сам на питоне написал, а как на cmd реализовать не смог сообразить, теперь понятно.
 
Последнее редактирование:
Сверху Снизу