CMD/BAT - [решено] Поиск с условием и сравнение

Ответить
Аватара пользователя
63RW51

CMD/BAT - [решено] Поиск с условием и сравнение

Сообщение 63RW51 »

Подскажите пожалуйста как реализовать:

Есть файл my.txt в нем текст

vasya=1.1

petya=1.2

Нужно найти в файле значение vasya=1.1 и присвоить ему переменную %1 дальше вывести ее на экран (значение 1.1 постоянно меняется)

Затем в втором файле my2.txt текст:

run=0.1

1.1=1.2

1.2=1.3

1.3=1.4

end=1.5

Найти значение end присвоить ему переменную %2 вывести значение на экран и сравнить значение %1 и %2 если значение %1 больше чем %2 вывести на экран Сумма больше и перейти в конец бат файла

Дальше найти значение run сравнить его с %1 значением и если оно меньше Вывести на экран сообщение Сумма меньше и перейти в конец бат

После этого найти значение %1 в столбике до знака = и присвоить значению после = переменную %3 и вывести его на экран
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Поиск с условием и сравнение

Сообщение amel27 »

Код:

Код: Выделить всё

@echo off
call :TEST vasya
call :TEST petya
EXIT/B
:TEST
 for /f "tokens=1* delims==" %%a in ('findstr/bic:"%~1=" "my.txt"') do set "$b=%%b"
 for /f "tokens=1* delims==" %%a in ('findstr/bic:"%$b%=" /c:"run=" /c:"end=" "my2.txt"') do set "_%%a=%%b"
 if "%_run%" gtr "%$b%" echo %~1: Сумма меньше& GoTo :EOF
 if "%_end%" lss "%$b%" echo %~1: Сумма больше& GoTo :EOF
 call echo %~1: %%_%$b%%%
GoTo :EOF
Аватара пользователя
63RW51

Re: CMD/BAT - [решено] Поиск с условием и сравнение

Сообщение 63RW51 »

Спасибо большое а подскажите пожалуйста еще как вот это вывести на экран:


Цитата amel27:



call echo %~1: %%_%$b%%%
CMD/BAT - [решено] Поиск с условием и сравнение




У меня правильно получается только с сохранением в файл

call echo %~1: %%_%$b%%% >>my3.txt



А если просто писать

echo %~1: %%_%$b%%%



то отображается первое значение в таком виде %_0.1%
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Поиск с условием и сравнение

Сообщение amel27 »

Цитата 63RW51:



как вот это вывести на экран
CMD/BAT - [решено] Поиск с условием и сравнение




то же с паузой:



Код:

Код: Выделить всё

@echo off
call :TEST vasya
call :TEST petya
PAUSE>nul
EXIT/B
:TEST
 for /f "tokens=1* delims==" %%a in ('findstr/bic:"%~1=" "my.txt"') do set "$b=%%b"
 for /f "tokens=1* delims==" %%a in ('findstr/bic:"%$b%=" /c:"run=" /c:"end=" "my2.txt"') do set "_%%a=%%b"
 if "%_run%" gtr "%$b%" echo %~1: Сумма меньше& GoTo :EOF
 if "%_end%" lss "%$b%" echo %~1: Сумма больше& GoTo :EOF
 call echo %~1: %%_%$b%%%
GoTo :EOF
Ответить

Вернуться в «Скриптовые языки администрирования Windows»