यदि आपके पास एक विंडोज कंप्यूटर है, तो आप CMD.EXE
कुछ गूढ़ फॉर-लूप के साथ अच्छे 'ol' का उपयोग कर सकते हैं । सुनिश्चित करें कि आप इसे "निहित" निर्देशिका में केवल shp / sql फ़ाइलों के साथ करते हैं जिन्हें आपको लोड करने की आवश्यकता है।
पहला कदम, एसक्यूएल लोडर फाइलें बनाएं (मैंने यह भी मान लिया है कि आपके पास 4326 के साथ लाट / लॉन्ग डब्ल्यूजीएस84 डेटा है। इसे अपने एसआरएस में अपडेट करें):
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 लोक (लिनक्स, मैक ओएस एक्स, आदि) के लिए बराबर की तरह कुछ है:
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