9

我想从应用程序启动 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。

4

2 回答 2

7

试试这个:

"C:\Program Files\PostgreSQL\9.1\bin\psql.exe" -f "C:\Documents and Settings\Administrateur\Mes documents\TD6.0\FETCHING\install.sql" TEST SYSADM 
于 2012-05-22T18:01:39.783 回答
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 文件启动安装。另请参阅我关于将参数传递给 SQL 脚本的答案。

于 2012-05-22T21:58:15.003 回答