There was a space too much between the password and the streaming operator. So the password was extended by a trailing space.
Furthermore you have to escape the >-symbol first with the carret in the windows command shell and then the escape-symbol \ for psql.
echo localhost:5432:postgres:postgres: 7Ug\^>uAks!{VA> %PGPASSFILE%
best regards
Hendrik
Von: Shreeyansh Dba <shreeyansh2014@gmail.com>
Gesendet: Donnerstag, 11. Oktober 2018 17:17
An: Schenk, Hendrik <hendrik.schenk@sieb-meyer.de>
Cc: pgsql-admin@lists.postgresql.org
Betreff: Re: Batch: DB password with ">"
Hi,
You can use below command to get the desired output.
echo localhost:5432:postgres:postgres:7Ug^\>uAks!{VA > %PGPASSFILE%
or
echo "localhost:5432:postgres:postgres:7Ug^>uAks!{VA" > %PGPASSFILE%
Hi,
i want to modiy the adatabse via batch script. The user has a password that contains symbols like that “g>uAks!”. The problem here is the “greater than”-symbol.
call set PGPASSFILE=%TEMP%\pgpass.conf
echo localhost:5432:postgres:postgres:7Ug^>uAks!{VA > %PGPASSFILE%
"C:\Program Files\PostgreSQL\10\bin\psql" -U postgres
psql will always fail with FATAL: User-Athentification failed. The password was read from ..\Local\Temp\pgpass.conf
If I set a Enviromentvariable and “echo” it, it will not work, because of the >-symbol.
C:\Users\hschenk>set PGPASSWORD=lalal>lala
C:\Users\hschenk>echo %PGPASSWORD%
Lalal
How can I use this with a password like this?