Вот сам батник:
- Код: Выделить всё
C:\Perl64\bin\perl5.14.2.exe -e -n "if(tr/ws\.openglass\.ru|w1\.openglass\.ru|w2\.openglass\.ru|v-stg-app11/тут_должен_быть параметр/){}" C:\soapui\projects\my_project.xml
cd C:\PROGRA~2\SMARTB~1\SOAPUI~1.0\bin
cmd.exe /C testrunner.bat -sNew_tests -cTest1 -a -fC:\soapui\Logs C:\soapui\projects\my_project.xml 2>&1 | C:\Perl64\bin\perl5.14.2.exe -e "$res=0; while (<>) {print STDOUT; if(/FAILED/){$res=$res+1};} if($res==0){print \"0\"; exit 0;} else {print \"1\"; exit 1};" >> c:\TEMP\logfile.txt
goto answer%ERRORLEVEL%
:answer0
echo 0
exit /B 0
:answer1
echo 1
exit /B 1
Я не очень уверена в работоспособности первого регекспа, т.к. писала его на коленке, и ещё не проверяла. В общем, запускаться батник будет так:
script.bat v-stg-app11 (v-stg-app11 в этом случае, это имя сервера, оно может быть любым, в том числе, и содержать неэкранированные точки, слеши, и всё что угодно)
Его нужно передать вот сюда :
C:\Perl64\bin\perl5.14.2.exe -e -n "if(tr/ws\.openglass\.ru|w1\.openglass\.ru|w2\.openglass\.ru|v-stg-app11/тут_должен_быть параметр/){}" C:\soapui\projects \my_project.xml
Если написать что-то вроде
C:\Perl64\bin\perl5.14.2.exe -e -n "if(tr/ws\.openglass\.ru|w1\.openglass\.ru|w2\.openglass\.ru|v-stg-app11/'%1'/){}" C:\soapui\projects \my_project.xml
то перл кушать этот скрипт отказывается. Я пробовала эксперементировать с разными кавычками, и у меня ничего не вышло. Вторая проблема это экраны, предусмотреть их заранее невозможно, и соотвественно, придется экранировать где-то уже внутри батника.
Как вариант сделать жесткую выборку по имени сервера, но опять же мне этот варинат не очень нравится, т.к. позже планирую переписать регекспу на поиск и замену того, что привязано к определенным тегам, а не на поиск по имени сервера.
Вариант переписать скрипт на power shell, но я им увы не владею, пыталась смотреть доки, но как-то там всё мудрено с потоками и их перенаправлением - быстро разобраться мне не удалось.
Буду признательна за любую помощь.