要約:昨日紹介したPortable QGIS Swiss Editionの起動バッチファイルを、下のように変えてみました。
start_qgis_project.batSelectRawtextBitbucket
@echo off
set qgs=relations.qgs
set qgs=%~dp0%qgs%

D:
cd \AppsPortable\QGIS-Portable-CH\bin
call o4w_env.bat
path %OSGEO4W_ROOT%\apps\qgis\bin
set QGIS_PREFIX_PATH=%OSGEO4W_ROOT:\=/%/apps/qgis
set conf=--configpath %OSGEO4W_ROOT%\.qgis2
set proj=--project "%qgs%"
start "" %OSGEO4W_ROOT%\bin\qgis-bin.exe %conf% %proj%

短い説明
バッチファイルの冒頭で、qgsという環境変数にプロジェクトファイルのパスを設定。次にポータブル版QGISの実行ファイルがある場所に移動。その後は、元のバッチファイルにあった最低限必要な部分で、最後にqgis-bin.exeをプロジェクトファイルの引数付で実行します。Windows 7 32bitで動作確認。

qgis-bin起動オプションの詳細は、
QGISユーザガイドにありました。


実行例
タンザニアのサンプルデータがプロジェクトファイル付で配布されていたので、テスト。作成時のQGISバージョン(プロジェクトファイル)が古いというメッセージが出ますが、とりあえず動きました。
»Tanzania GIS User Group : QGIS example data for Tanzania

公式のサンプルデータ(アラスカ)も、レイヤーは少しですがプロジェクトファイルがあるのでテスト。冒頭の画像にあるrelations.qgsというのが、これです。

»http://download.osgeo.org/qgis/data/qgis_sample_data.zip

本当にしたいのは(1)バッチファイルの先頭でポータブル版PostGISを起動し、PostGISデータを使ったプロジェクトファイルを読み込む、(2)起動中のQGISがある時、バッチで特定のプロジェクトファイルに切り替えること。前者はできそうだけど、後者はコマンドプロンプトだけでは無理そう。バッチ起動ごとに新しいQGISが立ち上がってしまう…。