пакетный файл для хранения вывода запроса psql в переменную - PullRequest
0 голосов
/ 05 февраля 2019

Привет. Я создаю командный файл для выполнения запроса и записи файла журнала для вывода.Таким образом, на основании какого-то условия, два запроса должны быть выполнены.Поэтому я пытался сохранить выходное значение запроса в переменной и использовать это значение переменной для проверки условия.Но здесь я сталкиваюсь с проблемой, которая заключается в том, как мне следует объявить и сохранить выходное значение в переменной с помощью команды psql.Пожалуйста помоги!!Вот что я попробовал:

SET /A a = psql -t -U postgres -d rpd -c "select count(*) from rpd.rpm_rpd_count"
SET /A b = 1

if %a% == 3 goto is_stat 
else goto is_start

REM to copy the log
:is_start  
psql -U postgres -d rpd -c "SELECT
a.table_name , 'MATCH' status  FROM rpd.rpm_rpd_count A  WHERE
a.rpd_count = a.rpm_count UNION ALL SELECT a.table_name, 'NOT MATCH'
AS status FROM rpd.rpm_rpd_count A WHERE a.rpd_count <>  a.rpm_count;" >> C:\Users\admin\Desktop\err.log
goto END
:is_stat 
psql -U postgres -d rpd -c "SELECT a.table_name , 'MATCH'
status  FROM rpd.rpm_rpd_count A  WHERE a.rpd_count = a.rpm_count;" >>
C:\Users\admin\Desktop\err.log 
goto END
:END 
echo %b% >> C:\Users\admin\Desktop\err.log

Проблема здесь в том, что ничего не сохраняется в переменной a

1 Ответ

0 голосов
/ 05 февраля 2019

Вы можете использовать цикл for для анализа вывода

for /f %%i in ('psql -t -U postgres -d rpd -c "select count(*) from rpd.rpm_rpd_count"') do set A=%%i

(используйте один %, если вы попробуете это в консоли командной строки, и двойной %% в пакетном файле)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...