繁体   English   中英

将 psql 查询输出存储到变量中的批处理文件

[英]batch file to store the psql query output into a variable

嗨,我正在创建一个批处理文件来执行查询并为输出写入日志文件。 因此,根据某些条件,将执行两个查询。 所以我试图将查询的输出值存储到一个变量中,并使用该变量值来检查条件。 但是在这里我面临一个问题,我应该如何使用 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中没有保存任何内容

您可以使用 for 循环来解析输出

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

(如果您在命令行控制台中尝试,请使用单个% ,并在批处理文件中使用双%%

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM