Postgresql 是否从批处理中执行psql命令,而不为密码提供单独的弹出窗口?

Postgresql 是否从批处理中执行psql命令,而不为密码提供单独的弹出窗口?,postgresql,passwords,Postgresql,Passwords,如果我在一个隐藏的cmd进程中执行一个psql命令,它将打开一个cmd请求密码(我在C#中通过使用相应的args启动一个新的cmd.exe进程来执行此操作)。有没有办法避免这种情况?理想情况下,密码不会存储在任何地方,只需将其作为参数传递。PostgreSQL将在请求一个名为PGPASSWORD的环境变量之前自动查找该变量。如果设置了环境变量,它将继续运行,而不需要密码 您可以在提交批处理脚本之前设置环境变量,然后在完成时将其设置为nothing。像这样: set PGPASSWORD=%1 p

如果我在一个隐藏的cmd进程中执行一个psql命令,它将打开一个cmd请求密码(我在C#中通过使用相应的args启动一个新的cmd.exe进程来执行此操作)。有没有办法避免这种情况?理想情况下,密码不会存储在任何地方,只需将其作为参数传递。

PostgreSQL将在请求一个名为PGPASSWORD的环境变量之前自动查找该变量。如果设置了环境变量,它将继续运行,而不需要密码

您可以在提交批处理脚本之前设置环境变量,然后在完成时将其设置为nothing。像这样:

set PGPASSWORD=%1
pgsql.exe your arguments here
set PGPASSWORD=
假设您将密码作为第一个参数传递给批处理脚本,这会将PGPASSWORD设置为您传递的密码