@Echo off
cls
@rem
@rem
"+++++++++++++++++++++++++++++++++++++++++++++++++++++"
@rem
" Bat-файл 'prc-1.bat' "
@rem
" "
@rem
"Обработка текущей строки 'string' запроса из файла "
@rem
"'stages.txt', которая НЕ содержит логических "
@rem
"операторов "
@rem
"+++++++++++++++++++++++++++++++++++++++++++++++++++++"
@rem
@rem
"Вход 1: файл 'string' со строкой из файла "
@rem
"'stages.txt' "
@rem
@rem
"Вход 2: файл 'currdb' с текущей выборкой из БД "
@rem
"'radar' журнальных публикаций ЭБ IEEE Xplore "
@rem
@rem
"Выход: обновленный 'текущий' файл БД 'currdb' "
@rem
@rem =======================================================
@rem
if
exist notfound goto CLEAN
@rem
type
num_string
nircmd wait 1500
@rem
@rem -------------------------------------------------------
@rem
"Обрабатываем файл 'string': "
@rem
"1. множественные пробелы заменяются на одиночные; "
@rem
"2. удаляются пробелы в начале строки; "
@rem
"3. удаляются все кавычки; "
@rem
"4. из строки вида 'parameterization{10}' формируется "
@rem
"строка 'parameterization;10'. "
@rem
"Здесь: 'parameterization' - искомый термин, а '10' - "
@rem
"номер поля БД, в котором этот термин ищется "
@rem
sed
"s/ */ /g"
<string >temp\zuc01
sed
"s/^ *//"
<temp\zuc01 >temp\zuc02
sed
"s/{/;{/g"
<temp\zuc02 >temp\zuc03
sed
"s/[{}()\x22\x93\x94\xAB\xBB]//g;s/$/\r/"
<temp\zuc03 >temp\zuc05
@rem
@rem -------------------------------------------------------
@rem
"Из файла 'currdb' с текущей выборкой из БД, "
@rem
"(в которой 14 полей) извлекается 1-ое поле "
@rem
"(порядковый номер) и N-ое (в данном примере - 10-е) "
@rem
"поле базы данных "
@rem
cut
-f2 -d; <temp\zuc05 >temp\zuc06
tr
-d
" [:alpha:][:punct:]"
<temp\zuc06 >temp\zuc07
sed
":a;$!N;s/\n/,/;ta;"
<temp\zuc07 >temp\zuc08
sed
"s/^\(.*\)$/cut -f1,\1 <currdb >temp\\zuc09/"
<temp\zuc08 >ztmp4.bat
CALL ztmp4.bat
@rem
@rem -------------------------------------------------------
@rem
"Из сформированного файла 'temp\zuc09' извлекаются "
@rem
"записи (строки), содержащие искомый одиночный термин "
@rem
"(в данном примере - это слово 'parameterization' "
@rem
cut
-f1 -d; <temp\zuc05 >temp\zuc10
sed
"s/^\(.*\)$/grep -i \x22\1\x22 <temp\\zuc09 >temp\\zuc11\r/"
<temp\zuc10 >ztmp5.bat
CALL ztmp5.bat
@rem
@rem -------------------------------------------------------
@rem
"Обновляем текущий файл 'currdb' "
@rem
cut
-f1 <temp\zuc11 >temp\zuc12
sed
"s/$/\t\r/"
<temp\zuc12 >temp\zuc13
fgrep
-i -f temp\zuc13 <currdb >temp\zuc14
copy /Y temp\zuc14 currdb >null
@rem
@rem -------------------------------------------------------
@rem
"Выводим число найденных записей "
@rem
sed
-n
"$="
<currdb >temp\zuc15
set
Size=0
set
Files=temp\zuc15
for
%%F
in
(%Files%)
do
if
/i %%~zF EQU %Size% del /f %%F
if
exist temp\zuc15 goto METKA1
echo
ЏгЎ«ЁЄ жЁ© Ґ ©¤Ґ® >temp\zuc17
echo
>notfound
goto METKA2
:METKA1
sed
"s/^\(.*\)$/Ќ ©¤Ґ® ЇгЎ«ЁЄ жЁ©: \1\r/"
<temp\zuc15 >temp\zuc16
crecode -wd temp\zuc16 temp\zuc17
cls
:METKA2
cls
type
num_string
type
temp\zuc17
if
not exist notfound
echo
Џа®¬Ґ¦гв®зл© аҐ§г«мв в § ЇЁб ў Ї ЇЄг
'stgs'
nircmd wait 2000
@rem
@rem -------------------------------------------------------
:CLEAN
@rem
"Удаление временных файлов "
@rem
if
exist num_string del /Q num_string
if
exist null del /Q null
if
exist temp\zuc* del /Q temp\zuc*
if
exist ztmp4.bat del /Q ztmp4.bat
if
exist ztmp5.bat del /Q ztmp5.bat
@rem
@rem -------------------------------------------------------
@rem
"Выход из bat-файла "
:END