Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Поиск с условием и сравнение (http://forum.oszone.net/showthread.php?t=188487)

63RW51 16-10-2010 13:11 1520040

Поиск с условием и сравнение
 
Подскажите пожалуйста как реализовать:
Есть файл 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 1521388

Код:

@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 1521657

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

Цитата amel27
call echo %~1: %%_%$b%%% »

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

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

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

amel27 19-10-2010 07:25 1522006

Цитата:

Цитата 63RW51
как вот это вывести на экран »

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

@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



Время: 04:58.

Время: 04:58.
© OSzone.net 2001-