将参数传递给psql.exe

时间:2012-05-22 17:45:07

标签: windows postgresql

我想从应用程序启动psql.exe。用户找到脚本,因此它可以在他的磁盘上的任何位置,并且应用程序只是将该脚本提供给psql。就是这样。

正确的命令行是什么?

我尝试了这个没有成功

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

我尝试使用引号,没有引号,没有工作,只是忽略了参数(在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:

是的,如果脚本与psql.exe位于同一目录中,并且如果我首先将CD安装到安装psql.exe的位置,则表示没有引号,没有绝对路径,并且它可以正常工作。但是,在我的情况下,我希望应用程序可以在任何Windows安装上工作,这意味着psql.exe可以在任何地方,sql脚本也可以在任何地方。我仍然希望将脚本提供给psql.exe。

2 个答案:

答案 0 :(得分:6)

试试这个:

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

答案 1 :(得分:0)

将以下命令保存为BATch文件(install.bat等)。

请注意'defaultValueHere'。您可以设置默认值,以防用户跳过条目。

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%

指示用户从install.bat文件启动安装。另请参阅my answer有关将参数传递给SQL脚本的信息。