2012-05-22 2 views
8

응용 프로그램에서 psql.exe를 시작하려고합니다. 사용자는 스크립트를 찾아 자신의 디스크 어디에나있을 수 있으며, 응용 프로그램은 그 스크립트를 psql에 제공합니다. 그게 다야.psql.exe에 매개 변수 전달

올바른 명령 줄은 무엇입니까?

나는 그냥 예 (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: 

을 무시하는 것, 아무도 일하지 따옴표없이, 내가 따옴표와 함께 노력없이 성공

"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.exe와 같은 디렉토리에 있고 psql.exe가 설치된 곳의 CD가 처음이라면 따옴표가없고 절대 경로가없고 정상적으로 작동합니다. 그러나, 제 경우에는 응용 프로그램이 모든 Windows 설치에서 작동하기를 원합니다. 즉, psql.exe는 아무 곳에 나있을 수 있고 SQL 스크립트도 어디에도있을 수 있음을 의미합니다. 나는 여전히 psql.exe에 스크립트를 제공하고 싶다.

+4

'psql --help'의 결과를 자세히 살펴보면 모든 "스위치"매개 변수가 데이터베이스와 사용자 이름 앞에 올 필요가 있다는 것을 알 수 있습니다 –

답변

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 
0

저장 명령 아래에 배치 파일 (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 스크립트에 전달할 때 my answer을 참조하십시오.