Windows 컴퓨터를 사용 CMD.EXE
하는 경우 몇 가지 난해한 for-loop를 사용하여 좋은 것을 사용할 수 있습니다 . 로드해야하는 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 민속 (리눅스, 맥 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