我正在编写一个在PostgreSQL中创建用户的PowerShell脚本。脚本中的一些步骤是:
执行第一个命令
SET PGPASSWORD=superPassword
执行第二个命令
"C:\Program Files\PostgreSQL\9.6\bin\psql.exe --username postgres --command "CREATE USER Ivan WITH CREATEDB PASSWORD 'ivanPassword';"
我有一个问题,我发现只有:
cmd.exe /c "SET PGPASSWORD=superPassword"
但它没有用。我不知道如何在一个打开的命令提示符窗口中执行这两个命令。
答案 0 :(得分:5)
从this answer到DBA StackExchange上的类似问题:
Set-Location 'C:\Program Files\PostgreSQL\9.6\bin'
$env:PGPASSWORD = 'superPassword'
& .\psql.exe --% --username postgres --command "CREATE USER Ivan WITH CREATEDB PASSWORD 'ivanPassword';"
请注意,stop-parsing symbol(--%
)需要PowerShell v3或更高版本。
答案 1 :(得分:1)
来自cmd.exe
帮助:
/ C执行string指定的命令,然后终止
/ K执行string指定的命令但仍然是
更改您的脚本以执行cmd.exe /K cd c:\temp
,您就可以了。