Windowsコンピューターを使用している場合CMD.EXE
は、いくつかの難解なforループで適切なol を使用できます。ロードする必要があるshp / sqlファイルのみを含む「包含」ディレクトリでこれを行うようにしてください。
最初のステップとして、SQLローダーファイルを作成します(また、4326でLat / Long WGS84データを持っていると仮定します。これをSRSに更新します)。
for %f in (*shp) do shp2pgsql -s 4326 %f public.%~nf > %~nf.sql
次に、SQLファイルをチェックして見栄えをよくしてから、同様のループを実行します。
for %f in (*sql) do psql -h myserver -d mydb -U myuser -f %f > nul
bash
POSIXフォーク(Linuxでは、マックOS Xなど)のための同等のようなものです:
for f in *.shp
do
shp2pgsql -s 4326 %f public.`basename $f .shp` > `basename $f .shp`.sql
done
それから
for f in *.sql
do
psql -h myserver -d mydb -U myuser -f $f > /dev/null
done
または、中間.sql
ファイルを保持する必要がない場合は、両方の部分が単一のループにパイプされます。
for f in *.shp
do
shp2pgsql -s 4326 %f public.`basename $f .shp` | psql -d mydb > /dev/null
done