пакетный файл для чтения значения переменной из другого файла - PullRequest
0 голосов
/ 27 сентября 2018

Нужна помощь в создании пакетного файла, который считывает значение переменной из * .txt файла.

Например,

MyTxtFile.txt
VAR_A=5
VAR_B=10

MyBatFile.bat Необходимо прочитать MyTxtFile.TXT и эхо-значения VAR_A и VAR_B

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы можете попробовать следующее (см. Пояснительные комментарии rem, чтобы узнать, как это работает):

@echo off
rem // Define constants here:
set "_FILE=MyTxtFile.txt"
rem // Determine number of lines in text file:
for /F %%C in ('^< "%_FILE%" find /C /V ""') do set "COUNT=%%C"
rem // Read from text file:
< "%_FILE%" (
    rem // Loop over number of lines:
    for /L %%I in (1,1,%COUNT%) do (
        rem // Clear line variable:
        set "LINE="
        rem // Read current line into variable:
        set /P LINE=""
        rem // Check whether current line is not empty:
        if defined LINE (
            rem // Apply current line as variable assignment (avoid messages for invalid ones):
            > nul 2>&1 call set "%%LINE%%"
        )
    )
)

Запустить пакетный файл (назовем его assign.bat) из окна командной строки.,Чтобы отобразить назначенные переменные, введите set VAR_ в командной строке:

>>> assign.bat

>>> set VAR_
VAR_A=5
VAR_B=10
0 голосов
/ 27 сентября 2018

Зависит от того, как эти значения были записаны.Если вы можете добавить небольшие «теги» перед значениями, то это облегчает эту работу и делает ее.

Например, вот текстовый файл, который я сделал:

random random
VAR-A 2853
VAR-B 1039410
our code wont notice this text

И пакетный файлзапустил на нем и вывел это:

2853
1039410

Который в коде записан как:

echo %varA%
echo %varB%

Полный код здесь:

@echo off
cls
cd %~dp0

rem Extracting lines with the tag "VAR-A/B"...

findstr "VAR-A" myfile.txt > Vara.txt
findstr "VAR-B" myfile.txt > Varb.txt

rem Setting the lines to variables...

set /P varA=<Vara.txt
set /P varB=<Varb.txt

rem Deleting temp files...

del Vara.txt
del Varb.txt

rem Now the 2 variables have tags before them, time to remove them...

set varA=%varA:~6%
set varB=%varB:~6%

rem Output:

echo %varA%
echo %varB%

pause>nul
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...