Войти

Показать полную графическую версию : [решено] Поиск с условием и сравнение


63RW51
16-10-2010, 13:11
Подскажите пожалуйста как реализовать:
Есть файл 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
18-10-2010, 11:54
@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
18-10-2010, 18:13
Спасибо большое а подскажите пожалуйста еще как вот это вывести на экран:
call echo %~1: %%_%$b%%% »

У меня правильно получается только с сохранением в файл
call echo %~1: %%_%$b%%% >>my3.txt

А если просто писать
echo %~1: %%_%$b%%%

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

amel27
19-10-2010, 07:25
как вот это вывести на экран »
то же с паузой:
@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




© OSzone.net 2001-2012