мне нужна помощь с окна пакетного сценарияПакетный скрипт для поиска определенной строки в правке файла SVN
Что я пытаюсь достичь:
- получить самый молодой (последний) пересмотр с репозиторий поиск
- для конкретной строки в этом файле
- если строка существует, загрузить веб-страницу
Что я пробовал:
set REVNO=$(svnlook youngest D:\Subversion\...)
set REVURL=D:\Subversion\...\db\revprops\0\
findstr /m "string_I_am_searching_for" %REVURL%%REVNO%
if %errorlevel%==0 (
start http://webpage
)
Почему я пытаюсь сделать это:
Я хочу начать Hudson CI автоматический тест после фиксации, которая имеет определенную строку в сообщении (напр , Autobuild: true
)
Я не может отладить свой код, так как я не знаком с Windows, пакетного сценарием
В моем сценарии я использовал:
- конкатенации переменных (которые могут быть неправильно) потому что я не был уверен, могу ли я добавить переменную к пути
findstr
, чтобы найти, содержит ли файл строку (я знаю, что findstr может использоваться и для переменных)
Я не удивлюсь, если мой маленький скрипт имеет семантические проблемы, а также синтаксические проблемы, потому что, как я уже говорил, я не сделал, что большая часть пакетного сценариев, прежде чем
У меня нет никаких требований, нет спецификаций, поэтому сценарий может быть реализован любым способом. Поэтому я открыт для предложений
P.S. Я читал также, что использование избыточного веса процедур на post-commit
не является хорошей идеей, потому что СВН не возвращает управление обратно пользователю до тех пор, пока не будет сделано со всем -> Это не большая проблема
EDIT: I что я действительно не получил самый младший номер ревизии, а скорее использовал командную строку. SO после googling немного больше, я обнаружил, что в Windows не так просто вызвать некоторую команду и сохранить результат в переменной. Поэтому я решил использовать файл для хранения промежуточных результатов.
Это то, что я пробовал:
cd D:\Subversion\...\hooks
SET OUTPUT=testing
FOR /F "tokens=*" %a in ('revision.bat') do (SET OUTPUT=%a)
findstr /m "o" D:\Subversion\...\db\revprops\0\%a
if %errorlevel%==0 (
start http://webpage
)
в правке.Летучая мышь:
svnlook youngest D:\Subversion\...
Теперь я получаю эту ошибку в SVN:
post-commit hook failed (exit code 255) with output:
a") was unexpected at this time.
Я считаю, что это потому, что я создать переменную a
в неправильном месте в неправильное время. Но я не получаю эту ошибку, если я запустить файл вручную битой
Вы сказали нам, что вы пробовали, но ничего о результатах, сообщениях об ошибках и т. Д. – Endoro
@ Эndoro хорошо, как я уже сказал, я не знаю, как отлаживать пакетные скрипты. И поскольку это выполняется на заднем плане, я не вижу командной строки. Когда я пытаюсь писать в файл с помощью 'echo% REVURL %% REVNO% >> file.txt', файл не создается –
Файл может быть создан, но поскольку вы не указали полный путь к' file.txt ' вы не знаете, куда он идет. Укажите полный путь ** к файлу file.txt и убедитесь, что в любой учетной записи, выполняемой вашим серверным процессом, есть разрешение на запись в этот путь. – alroc