это странное поведение, которое я наблюдал, мой обходной путь на самом деле состоит в том, чтобы запустить первое значение два раза в: sub, а первое l oop с XE1 возвращает «без строки поиска», второе l oop с XE1 возвращает ожидаемый результат. См. Вывод
Это функция, используемая в CMD, значения SID считываются из файла в более раннем FOR l oop.
:SUB_FINDSTR
REM "remove <blank>"
set SIDA=%SID: =%
for /F "tokens=2,4,6 delims='" %%a in (Y:\myinstallations\SAP_Hana\TEST\SQL\%ACTION%.sql) do (
REM set p1=%%a & echo !p1!
set p1=%%a & set p2=%%b & set p3=%%c
echo SUB_FINDSTR: stringsearch for %SIDA% select-results
type %LOGPATH%\%ACTION%_%SIDA%.log
for /F "delims=" %%k in ('findstr /M /I "%p1% %p2% %p3%" %LOGPATH%\%ACTION%_%SIDA%.log') do (
echo "%ACTION% search pattern 1=!p1! , 2= !p2! , 3=!p3! found in %%k"
echo "%ACTION% search pattern 1=!p1! , 2= !p2! , 3=!p3! found in %%k" >>%LOGPATH%\FOUND_%ACTION%.txt
)
)
GOTO :EOF
это результат, как вы можете см. первый l oop с XE1 возвращает «нет строки поиска», а затем он работает, как ожидалось:
XE1 SUB_FINDSTR: поиск строки для результатов выбора XE1 MAX (VERSNR) , PARNAME, PFNAME «000021», «lars», «DEFAULT» FINDSTR: Кейн Сухзейхенфолге
XE1 SUB_FINDSTR: поиск строки для результатов выбора XE1 MAX (VERSNR), PARNAME, PFNAME "000021", "lars", "DEFAULT" MAX (VERSNR), PARNAME, PFNAME "000021", "lars", "DEFAULT", шаблон поиска SELECT_LARS 1 = lars, 2 =, 3 = найдено в Y: \ myinstallations \ SAP_Hana \ TEST \ LOG_ABAP \ 27-05-2020_93744 \ SELECT_LARS_XE1.log "" Шаблон поиска SELECT_LARS 1 = lars, 2 =, 3 = найдено в% l "
XF1 SUB_FINDSTR: stringsearch для результатов выбора XF1 MAX (VERSNR), PARNAME, PFNAME "000014", "lars", "DEFAULT" "SELECT_LARS шаблон поиска 1 = lars, 2 =, 3 = найдено в Y: \ myi nустановки \ SAP_Hana \ TEST \ LOG_ABAP \ 27-05-2020_93744 \ SELECT_LARS_XF1.log "" Шаблон поиска SELECT_LARS 1 = lars, 2 =, 3 = найдено в% l "
XH1 SUB_FINDSTR: поиск строки для XH1 select- результаты MAX (VERSNR), PARNAME, PFNAME
XM1 SUB_FINDSTR: поиск строки для результатов выбора XM1 MAX (VERSNR), PARNAME, PFNAME
XS1 SUB_FINDSTR: поиск строки для результатов выбора XS1 MAX (VERSNR ), PARNAME, PFNAME
Есть идеи?
PS это нормально / правильно, что петли XH1, XM1 и XS1 не находят "lars".
С уважением, Ларс