Как добавить цикл while в пакетный скрипт, чтобы проверить состояние для заданного количества попыток времени - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть скрипт tabadmin refreshextract, который работает нормально, но теперь мы хотим реализовать его из потока воздуха, единственная проблема в том, что если сеанс повторно подключается, тогда поток данных выдает ошибку в журнале, но в конечном итоге он успешно обновляется.

Мы добавили psql-запрос, чтобы найти, как только извлечение обновления будет выполнено, оно будет извлекать информацию о том, успешно ли оно выполнено или нет.

tabcmd refreshextracts --url workbook_url -s https:// -t site -u tabadmin --password-file C:\Users\abc\Desktop\passwd.txt --no-certcheck

Псевдокод

cd c:\Program Files\PostgreSQL\11\bin
refresh_status='N'
retry_count = 0
while refresh_status = 'N' and retry_count < 20
retry_count++
refresh_status = $(psql -p 8060 -h servername -U readonly -d workgroup -c " select case when lower(notes) like '%finished%'  == 'succeed' then 'Y' else 'N" as refresh_status from _background_tasks where Job_name = 'Refresh Extracts' and title = 'workbook_name'  and  created_at >=CURRENT_DATE ORDER BY created_at desc limit 1")
if refresh_status == 'Y'
    EXIT Success
else
    continue
continue
if refresh_status = 'N'
    exit ERROR

1 Ответ

0 голосов
/ 24 сентября 2019

это должно работать

@echo off
set attempts=0
:loop
set /a attempts+=1
if %attempts%==5 (echo %attempts%)
goto loop

или это

@echo off
set attempts=0
:loop
set /a attempts+=1
echo %attempts%
goto loop

это примеры между прочим.

...