Документация PostgreSQL о pg_ctl описывает:
pg_ctl init[db] [-D datadir] [-s] [-o initdb-options]
-o initdb-options
--options=initdb-options
Определяет параметры, передаваемые непосредственно в команда initdb. -o может быть указан несколько раз, при этом все заданные параметры будут пропущены.
Параметры initdb обычно должны быть заключены в одинарные или двойные кавычки, чтобы гарантировать, что они передаются как группа.
Но по крайней мере на Windows, который не работает, все комбинации:
pg_ctl.exe init -D "C:/Test DB" -o"--pwfile=C:/XXX YYY/pg_pw.txt"
pg_ctl.exe init -D "C:/Test DB" -o"--pwfile="C:/XXX YYY/pg_pw.txt""
pg_ctl.exe init -D "C:/Test DB" -o"--pwfile='C:/XXX YYY/pg_pw.txt'"
pg_ctl.exe init -D "C:/Test DB" -o'--pwfile="C:/XXX YYY/pg_pw.txt"'
pg_ctl.exe init -D "C:/Test DB" -o"--pwfile="C:/XXX^ YYY/pg_pw.txt""
pg_ctl.exe init -D "C:/Test DB" -o"--pwfile="C:/XXX\ YYY/pg_pw.txt""
pg_ctl.exe init -D "C:/Test DB" -o"--pwfile=^"C:/XXX YYY/pg_pw.txt^""
fail:
pg_ctl: too many command-line arguments (first is "YYY/pg_pw.txt")
Try "pg_ctl --help" for more information.