-3

Рассмотрим файл out.txt в следующем формате

Display Variable;

ID    NAME       value
===*==========*================
201  Variavle     07Dec2014

Display Variable12;

ID    NAME          value
===*==========*================
201  Variavle12     08Dec2014

Display Variable123;

ID    NAME       value
===*==========*================
201  Variavle123     09Dec2014

Test.bat

В пакетном файле нам нужно найти переменную, переменную12 и переменную123, вернуть каждое значение переменной в пакетные файлы, названные так же, как переменные.

SET Variavle=09Dec2014
SET Variavle12=08Dec2014
SET Variavle123=09Dec2014

Пожалуйста, помогите мне сделать это.

1 ответ1

0
@echo off
    setlocal enableextensions disabledelayedexpansion

    for /f "tokens=2-3" %%a in ('
        findstr /b /r /c:"[0-9]" "log.txt"
    ') do set "%%a=%%b"

    set Variav

for /f используется для

  1. Выполните команду findstr над файлом log.txt , ища строки, начинающиеся с цифры

  2. Токенизируйте строки, используя пробелы или символы табуляции в качестве разделителей, и извлеките второй и третий токены в строке в заменяемые параметры %%a (начальный указан в команде) и %%b (в алфавитном порядке после)

Для каждой найденной строки выполняется предложение do и определяется переменная.

Окончательный set Variav включен только для вывода на консоль определенных переменных.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .