2012-11-29 43 views
1

我在Window 7VB腳本的PostgreSQL的pg_dump

Set objShell = WScript.CreateObject("WScript.Shell") 
objShell.Run postgresqlPath & "pg_dump.exe " & ServerId & " > " & backupFolder & "Database.dump.out" 
Wscript.Sleep 500 
objShell.SendKeys "Password~" 

這個腳本似乎運行兩次,並返回到目標文件夾中沒有文件寫入在VBScript備份腳本的PostgreSQL 9.1數據庫。

要排除路徑中的錯誤,我試圖將命令放入命令行工具中,結果一切正常。

任何提示讚賞

+1

使用'-f file'指定輸出文件。而且不要忘了把'「''左右backupFolder'。 –

+1

也可以嘗試使用'PGPASSWORD'環境變量傳遞密碼pg_dump的。 –

+0

您好,感謝! 備份文件夾的路徑變量,所以」要做到不好。 SendKey工作正常,我也將它用於createdb.exe。那裏沒有問題。在腳本中可能會有一點誤解,那就是服務器ID,它實際上是我想要刪除的數據庫的名稱。 我試過-f選項,它不工作。即使沒有SendKeys,我也沒有要求輸入密碼,但是很奇怪。 –

回答

1

您也可以使用DOS腳本

pg_dump --host 192.168.0.1 --port 5432 --username "postgres" --role "postgres" --no-password --format plain --encoding UTF8 --inserts --verbose --file "C:\backup\mydatabase%ldt%.sql" "mydatabase"