@Echo off
cls
@rem
@rem
"+++++++++++++++++++++++++++++++++++++++++++++++++++++"
@rem
" Bat-файл '2_search-db-C.bat' "
@rem
" "
@rem
"Поиск конференционных публикаций в БД 'radar' "
@rem
"по заданным критериям в файле 'stages.txt' "
@rem
"+++++++++++++++++++++++++++++++++++++++++++++++++++++"
@rem
@rem
"Вход 1: csv-файл БД 'radar' публикаций на НТМ "
@rem
"'C:\TablePro\IEEEX-C_S2DB-Radar_1992-2022.csv' "
@rem
" "
@rem
"Вход 2: файл с поисковым запросом 'stages.txt' "
@rem
" "
@rem
"Выход 1: файл базы данных 'Result-C.csv' с записями "
@rem
"о конференционных публикациях, найденными по запросу,"
@rem
"записанному в файле 'stages.txt'. "
@rem
" "
@rem
"Выход 2: файл 'Nothing-С.txt' в случае, если "
@rem
"искомых публикаций по запросу в БД НЕ найдено. "
@rem
@rem -------------------------------------------------------
@rem
"Используемые bat-файлы: "
@rem
"'prc-AND.bat' - обработка строки запроса с логическим"
@rem
"оператором 'AND' (И); "
@rem
"'prc-OR.bat' - обработка строки запроса с логическим "
@rem
"оператором 'OR' (ИЛИ); "
@rem
"'prc-NOT.bat' - обработка строки запроса с логическим"
@rem
"оператором 'NOT' (НЕ); "
@rem
"'prc-prim.bat' - обработка строки запроса без "
@rem
"логических операторов "
@rem
"'prc-stgs-С.bat' - запись промежуточных результатов "
@rem
"поиска в папку 'stgs' "
@rem
"'prc-ZIP.bat' - архивация полученных результатов "
@rem
"в папку '_ready' "
@rem
" "
@rem
"Используемые UNIX-утилиты: "
@rem
"'cat.exe', 'cut.exe', 'fgrep.exe', 'sed.exe', "
@rem
"'sort.exe', 'tr.exe', 'type.exe' "
@rem
" "
@rem
"Используемые утилиты: "
@rem
"'crecode.exe' - утилита перекодировки текста; "
@rem
"'cmsort.exe' - утилита сортировки строк; "
@rem
"'nircmd.exe' - универсальная утилита; "
@rem
"'zip.exe' - утилита архивирования файлов "
@rem
@rem =======================================================
@rem
"Удаление файлов, оставшихся после предыдущего поиска "
CALL _clean-C.bat
@rem
@rem -------------------------------------------------------
@rem
"Заменяем в файле БД конференционных публикаций все "
@rem
"'разделители' полей "
;
" на символ табуляции "
sed
"s/\x22;\x22/\t/g"
<
"C:\TablePro\IEEEX-C_S2DB-Radar_1992-2022.csv"
>temp\zuf01
@rem
@rem -------------------------------------------------------
@rem
"Удаляем 'шапку' файла БД 'IEEEX-C_S2DB....csv', "
@rem
"то есть первые две строки. "
sed
1,2d <temp\zuf01 >temp\zuf02
@rem
@rem -------------------------------------------------------
@rem
"Копируем полученный файл в 'текущий' файл БД "
copy temp\zuf02 currdb >null
@rem
@rem
"~~~~~~~~~~~~~~~~~~~~ НАЧАЛО ЦИКЛА ~~~~~~~~~~~~~~~~~~~"
@rem
echo
ЏЋ€‘Љ Є®дҐаҐжЁ®ле ЇгЎ«ЁЄ жЁ© ў Ѓ„
'radar'
IEEE Xplore
echo
Ї® § Їа®бг ў д ©«Ґ
'stages.txt'
nircmd wait 2500
@rem
@rem
"ЦИКЛ по строкам файла 'stages.txt'. "
@rem
@rem
"Нумерация строк файла 'stages.txt' "
cat
-n <stages.txt >temp\zus01
sed
"s/^ *//;s/$/\r/"
<temp\zus01 >temp\zus02
@rem
FOR /F
"delims="
%%i IN (temp\zus02) DO (
echo
%%i>temp\zus03
cut
-f1 <temp\zus03 >numstr
cut
-f2 <temp\zus03 >string
sed
"s/^\(.*\)\t\(.*\)$/ЋЎа Ў®вЄ бва®ЄЁ N\1 д ©« 'stages.txt'\r\n\2\r/"
<temp\zus03 >temp\zus04
crecode -wd temp\zus04 num_string
cls
if
exist temp\zus1* del /Q temp\zus1*
sed
"/ AND /!d"
<string >temp\zus11
sed
"/ OR /!d"
<string >temp\zus12
sed
"/^NOT /!d"
<string >temp\zus13
sed
"/ AND \| OR \|NOT /d"
<string >temp\zus14
FOR /R %CD\temp% %%I IN (zus1*) DO IF %%~zI LSS 1 DEL /F /Q
"%%~I"
if
exist temp\zus11 CALL prc-AND.bat
if
exist temp\zus12 CALL prc-OR.bat
if
exist temp\zus13 CALL prc-NOT.bat
if
exist temp\zus14 CALL prc-prim.bat
CALL prc-stgs-C.bat
)
@rem
"~~~~~~~~~~~~~~~~~~ ОКОНЧАНИЕ ЦИКЛА ~~~~~~~~~~~~~~~~~~"
@rem
if
not exist currdb goto nothing
@rem
@rem
"Пытаемся удалить файл 'currdb' 'нулевого' размера "
set
Size=0
set
Files=currdb
for
%%F
in
(%Files%)
do
if
/i %%~zF EQU %Size% del /f %%F
@rem
@rem -------------------------------------------------------
@rem
"Обходим обработку, если файла 'currdb' нет "
@rem
"В этом случае формируется файл 'Nothing-C.txt' "
if
exist currdb goto METKA1
:nothing
echo
По всему запросу
'stages.txt'
публикаций не найдено. >Nothing-C.txt
goto CLEAN
@rem -------------------------------------------------------
:METKA1
@rem
"Заменяем в сформированном файле базы данных 'currdb'."
@rem
"все символы табуляции на 'разделители' 'полей' "
;
" "
sed
"s/\t/\x22;\x22/g"
<currdb >temp\zuf04
@rem
@rem -------------------------------------------------------
@rem
"Вставляем переводы строк "
sed
"s/$/\r/"
<temp\zuf04 >temp\zuf05
@rem
@rem -------------------------------------------------------
@rem
"Формируем файл 'Result-C.csv' с результатами поиска, "
@rem
"добавляем 'шапку' (первые две строки) в файл БД. "
@rem
"Заменяем в файле 'шапки' 'header.csv' в папке 'auxs' "
@rem
"'издания' на 'мероприятия' "
sed
"s/Ё§¤ Ёп/¬Ґа®ЇаЁпвЁп/"
<auxs\header.csv >temp\zuf06
sed
"s/$/\r/"
<temp\zuf06 >temp\zuf07
cat
temp\zuf07 temp\zuf05 >Result-C.csv
@rem
@rem -------------------------------------------------------
:CLEAN
@rem
"Удаление временных файлов "
@rem
if
exist currdb del /Q currdb
if
exist final del /Q final
if
exist notfound del /Q notfound
if
exist numstr del /Q numstr
if
exist null del /Q null
if
exist string del /Q string
if
exist temp\zuf* del /Q temp\zuf*
if
exist temp\zus* del /Q temp\zus*
if
exist zcopy.bat del /Q zcopy.bat
@rem
@rem -------------------------------------------------------
@rem
"Архивация полученных результатов в папку '_ready' "
CALL prc-ZIP.bat
@rem
@rem -------------------------------------------------------
@rem
"Выход из bat-файла. "
:END