2012-05-22 33 views
8

Deseo iniciar 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 solo la envía a psql. Eso es todo.Pasar los parámetros a psql.exe

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

yo probamos este 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 citas, sin las comillas, ninguno funcionó, es simplemente haciendo caso omiso de los argumentos (intentado 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 el CD primero está donde psql.exe está instalado, eso significa que no hay comillas, no hay rutas absolutas y funciona bien. Sin embargo, en mi caso, quiero que la aplicación funcione en cualquier instalación de Windows, eso significa que psql.exe podría estar en cualquier parte y que la secuencia de comandos sql también podría estar en cualquier lugar. Todavía quiero que la secuencia de comandos se alimente a psql.exe.

+4

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

Respuesta

6

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 
0

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

Tenga en cuenta que 'defaultValueHere'. Puede establecer el valor predeterminado en caso de que su usuario omita 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. También vea my answer en pasar parámetros al script SQL.

Cuestiones relacionadas