У меня есть этот пакетный скрипт:
setlocal enableDelayedExpansion
set filename=%1%
set archive=%2%
set aleph=%3%
set bet=%4%
set gimel=%5%
if not x%filename:FEDBKA=%==x%filename% (
findstr /R <SHEM-HAKOVETZ>.*?(?:aa|tt|cc|bb|dd).*?<\/SHEM-HAKOVETZ> %1%
if !errorlevel! == 0 (
copy %filename% %archive%
move %filename% %gimel%
exit
)
findstr /R <SHEM-HAKOVETZ>.*?(?:rr|yy).*?<\/SHEM-HAKOVETZ> %1%
if !errorlevel! == 0 (
copy %filename% %archive%
move %filename% %aleph%
exit
)
findstr /R <SHEM-HAKOVETZ>.*?(?:ww|oo|pp).*?<\/SHEM-HAKOVETZ> %1%
if !errorlevel! == 0 (
copy %filename% %archive%
move %filename% %bet%
exit
)
exit
)
когда я запускаю скрипт, я получаю:
. *? было неожиданно в это время.
Я ищу шаблон тега xml, например:
<SHEM-HAKOVETZ>104000514813450ttS000005201811221405351025.DAT</SHEM-HAKOVETZ>
, где "tt" может быть переключен с другими опциями в регулярном выражении
Если я заменю регулярное выражение простым выражением findstr:
findstr "aa tt cc bb dd" %1%
все работает хорошо, но не соответствует моим точным требованиям.