我有一个批处理脚本,我希望能够在我的笔记本电脑和台式机上运行。根据我正在运行它的机器,我需要将2个文件路径中的1个传递给postgresql脚本。
if "%computername%"=="LAPTOP" (
set init_path=C:\path1
) else (
set init_path=C:\path2
)
psql -U postgres -d dbname -v full_path=%init_path%\csvfile.csv -qf sql/sqlfile.sql
我的postgresql脚本如下所示:
begin;
drop table if exists schm.table_name;
create table schm.table_name (
var1 date,
var2 float,
var3 text,
var4 float
);
truncate table schm.table_name;
\set quoted_path '\'' :full_path '\''
\copy schm.table_name from :quoted_path with delimiter as ',' csv quote as '"';
commit;
当我运行它时,我收到错误:
:quoted_path: No such file or directory
这是引用变量的正确方法吗?我的语法基于this线程。