Pasar parámetros a psql.exe

Quiero ejecutar psql.exe desde una aplicación. El usuario localiza la secuencia de comandos, por lo que podría estar en cualquier lugar de su disco, y la aplicación simplemente envía esa secuencia de comandos a psql. Eso es todo.

¿Cuál es la línea de comando correcta para eso?

Intenté esto sin éxito

"C:\Program Files\PostgreSQL\9.1\bin\psql.exe" TEST SYSADM -f "C:\Documents and Settings\Administrateur\Mes documents\TD6.0\FETCHING\install.sql"

Probé con comillas, sin las comillas, ninguna funcionó, solo ignora los argumentos (probé esto en cmd.exe)

C:\Documents and Settings\Administrateur>"C:\Program Files\PostgreSQL\9.1\bin\psql.exe" TEST SYSADM -f "C:\Documents and Settings\Administrateur\Mes documents\TD6.0\FETCHING\install.
sql"
psql: warning: extra command-line argument "-f" ignored
psql: warning: extra command-line argument "C:\Documents and Settings\Administrateur\Mes documents\TD6.0\FETCHING\install.sql" ignored
Password for user SYSADM:

Sí, si el script está en el mismo directorio que psql.exe, y si hago un CD primero donde está instalado psql.exe, eso significa que no hay comillas, ni rutas absolutas y funciona bien. Sin embargo, en mi caso, quiero que la aplicación funcione en cualquier instalación de Windows, lo que significa que psql.exe podría estar en cualquier lugar y el script sql también podría estar en cualquier lugar. Todavía quiero que el script se envíe a psql.exe.

preguntado el 22 de mayo de 12 a las 18:05

Si observa de cerca la salida de psql --help notará que todos los parámetros de "cambio" deben venir antes la base de datos y el nombre de usuario -

2 Respuestas

Prueba esto:

"C:\Program Files\PostgreSQL\9.1\bin\psql.exe" -f "C:\Documents and Settings\Administrateur\Mes documents\TD6.0\FETCHING\install.sql" TEST SYSADM 

contestado el 22 de mayo de 12 a las 19:05

... y lo mismo ocurre con -c parámetro, psql.exe solo lo quiere antes :) - Edoardo

Guarde los comandos a continuación como un archivo BATch (install.bat, etc.).

Tenga en cuenta el 'valor predeterminado aquí'. Puede establecer el valor predeterminado en caso de que su usuario se salte la entrada.

SET installScript=defaultValueHere
SET /P server="Enter the install script location [%installScript%]: "
ECHO you typed %installScript%
PAUSE 
"C:\Program Files\PostgreSQL\9.1\bin\psql.exe" TEST SYSADM -f %installScript%

Indique al usuario que inicie la instalación desde el archivo install.bat. Ver también mi respuesta al pasar parámetros al script SQL.

contestado el 23 de mayo de 17 a las 12:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.