このコマンドの何が問題になっていますか:
pg_dump -U postgres -W admin --disable-triggers -a -t employees -f D:\ddd.txt postgres
これにより、コマンドライン引数が多すぎるというエラーが発生します
-Wオプションのように見えます。そのオプションを使用する価値はありません。
-W, --password force password Prompt (should happen automatically)
パスワードを入力せずにコマンドを実行する場合は、.pgpassファイルを使用します。 http://www.postgresql.org/docs/9.1/static/libpq-pgpass.html
後世のために、pg_dumpとpg_restore(および他の多くのコマンド)は、ワードプロセッサが作成する長いハイフンを処理できないことに注意してください。ワードプロセッサからコマンドラインを切り貼りする場合は、編集時にハイフンが他の何かに変換されていないことを確認してください。そうしないと、正しく見えるコマンドラインが表示されますが、これらのツールの引数パーサーを混乱させてしまいます。
これは、ダッシュの1つが異なっていたコピー貼り付けから得ました。
Was:–-Host=
(最初のダッシュは「長い」ダッシュ)--Host=
に修正して解決しました
-W
->完全なDBダンプを取るためにパスワードの入力を求めます。
pg_dump -h 192.168.44.200 -p 5432 -U postgres -W -c -C -Fc -f C:\MMM\backup10_3.backup DATABASE_NAME
pg_dumpとpg_restoreはコマンドラインでパスワードを要求する必要があります。コマンドを入力すると、常に「コマンドライン引数が多すぎます」というエラーが発生します。以下を使用して、コマンドラインまたはバッチファイルで関連する環境変数を設定できます。
"SET PGPASSWORD=<password>"
バッチファイルに手動でパスワードを入力するように求められないようにします。それらは与えられた環境変数を使用します。
-W
フラグでパスワードを渡す代わりに、postgresの一時変数を設定することから始めます。
PGPASSWORD="mypass" pg_dump -U postgres--disable-triggers -a -t employees -f D:\ddd.txt postgres