I am not able to reproduce the problem. Do you mean pg windows service installed by installer is not working or bin\pg_ctl binary is not accepting spaces in the patch ?. Following worked for me i.e.
C:\Users\asif\Desktop\Program files\9.3>"bin\pg_ctl" -D "C:\Users\asif\Desktop\Program files\9.3\data1" -l logfile start server starting
2. A file using the first white space-delimited tokens of that directory as the file name exists, and there is it in the same hierarchy.
e.g.) C:\Program //file
"pg_ctl.exe" as PostgreSQL Service creates a postgres process using an absolute path which indicates the location of "postgres.exe",but the path is not enclosed in quotation.
Therefore,if the above-mentioned conditions are true, CreateProcessAsUser(a Windows Function called by pg_ctl.exe) tries to create a process using the other file such as "Program", so the service fails to start.
Accordingly, I think that the command path should be enclosed in quotation.
I created a patch to fix this failure, So could anyone confirm?