在批处理文件问题中从文件输入

时间:2011-05-05 05:27:53

标签: postgresql input batch-file

当我询问

时,我需要为此命令两次输入密码
createuser -h localhost -P -p 5432 -s -d -r -e postgres 

我试过

createuser -h localhost -P -p 5432 -s -d -r -e postgres < temp.txt

temp.txt包含

  

密码
  密码

它仍然要求输入密码

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

createuser程序可能与终端建立自己的连接,而不是从其标准输入读取,这是密码所关注的常见行为。使用SQL CREATE ROLE而不是createuser

可能会有更好的运气
echo "CREATE ROLE postgres CREATEROLE CREATEDB SUPERUSER PASSWORD 'password';" \   
    | psql -h localhost -p 5432 databasename

其中“databasename”是数据库的名称。

来自fine manual

  

createuser是SQL命令CREATE ROLE的包装器。通过此实用程序创建用户和通过其他方法访问服务器之间没有任何有效区别。