我正在尝试通过使用在 NSIS 脚本中运行 SQL 文件ExecWait。我不想弹出密码对话框,所以我将密码存储在PGPASSWORD环境变量中(更多信息:链接)。
如果我直接在cmd中执行以下命令,它工作正常:
set PGPASSWORD=PasswordText&&psql -U postgres -w -f "Path\To\File.sql" db_name
但是,当我在 NSIS 脚本中执行相同的命令时,PGPASSWORD没有设置,并且由于密码错误而失败:
ExecWait 'set PGPASSWORD=$PasswordText&&psql -U postgres -w -f "Path\To\File.sql" db_name'
wherePasswordText是一个变量(Var),我在其中存储用户提供的密码。