如何从批处理文件中执行postgres的SQL查询?

Ket*_*etu 8 sql postgresql batch-file command-prompt

我需要从批处理文件中执行SQL.我正在执行以下连接到Postgres并从表中选择数据

C:/pgsql/bin/psql -h %DB_HOST% -p 5432 -U %DB_USER% -d %DB_NAME% 
select * from test;
Run Code Online (Sandbox Code Playgroud)

我能够连接到数据库,但是我收到了错误

'select'不被识别为内部或外部命令,可操作程序或批处理文件.

有人遇到过这样的问题吗?

这是我正在尝试的查询之一,类似于shell脚本的工作,(如果有任何问题,请忽略查询中的语法错误)

copy testdata (col1,col2,col3) from '%filepath%/%csv_file%' with csv;
Run Code Online (Sandbox Code Playgroud)

jeb*_*jeb 5

你可以将它管道输入psql

(
echo select * from test;
) | C:/pgsql/bin/psql -h %DB_HOST% -p 5432 -U %DB_USER% -d %DB_NAME% 
Run Code Online (Sandbox Code Playgroud)

当右括号是SQL查询的一部分时,它们必须使用三个插入符进行转义.

( 
echo insert into testconfig(testid,scenarioid,testname ^^^) values( 1,1,'asdf'^^^);
) | psql -h %DB_HOST% -p 5432 -U %DB_USER% -d %DB_NAME%
Run Code Online (Sandbox Code Playgroud)