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

Тема в разделе "Пакетные файлы CMD, BAT", создана пользователем Kиpилл, 23 апр 2014.

  1. Kиpилл
    Онлайн

    Kиpилл Команда форума Администратор

    Лучший автор месяца

    Сообщения:
    12.228
    Симпатии:
    4.980
    Я вот еще как то долго мучался с тем,как получать в значение переменной текст из файла например.
    Или результат работы команды в переменную.
    Можно тоже этот вопрос задеть?
     
  2. Ramzes
    Оффлайн

    Ramzes Пользователь

    Сообщения:
    23
    Симпатии:
    31
    Код (Text):
    set /p content=< file.txt
    ?
     
    Kиpилл нравится это.
  3. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.495
    Симпатии:
    4.310
    Код (DOS):
    :: включаем поддержку дополнительных ключей
    SetLocal EnableExtensions

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

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

    maximax Новый пользователь

    Сообщения:
    2
    Симпатии:
    0
    Доброго времени суток.
    Имеется большой SQL скрипт (150 000 строк кода).
    Первые 3 строки содержат комментарии:
    Код (Text):

    --Product=Skif_BP
    --Patch_Header=Skif_BP
    --Patch_Version=4.0.0.608 (25.02.2015)
     
    Нужно получить в переменную значение Patch_Version, до даты выпуска патча, т.е. в данном случае 4.0.0.608.
    Подскажите, как это реализовать на cmd (можно с использованием сторонних консольных утилит).
     
  5. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.495
    Симпатии:
    4.310
    Здравствуйте, maximax !

    Воспользуйтесь таким скриптом.
    Код (DOS):

    @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 (не юникод).
     
    Последнее редактирование: 12 мар 2015
    maximax нравится это.
  6. maximax
    Оффлайн

    maximax Новый пользователь

    Сообщения:
    2
    Симпатии:
    0
    Большое спасибо, всё работает. Сам на питоне написал, а как на cmd реализовать не смог сообразить, теперь понятно.
     
    Последнее редактирование: 12 мар 2015

Поделиться этой страницей