#1 Tue 28 March 2017 14:29
- bruhnild
- Participant actif
- Lieu: Lyon
- Date d'inscription: 7 Jun 2014
- Messages: 130
Création fichier .bat à partir de commande OGR
Bonjour à toutes et à tous,
Je cherche à créer un fichier .bat à partir d'une commande ogr mais je n'arrive pas à trouver la bonne syntaxe.
Voici ma ligne de commande :
C:\Program Files\PostgreSQL\9.4\bin>for %f in (chemin_vers_les_shp\*.shp) do ogr2ogr -update -append -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=****** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %f
Cette commande assez classique permet d'importer tous les shapefiles d'un dossier dans une base de données postgres/postgis.
Voici ce que contient mon .bat :
@ECHO OFF
SET C:\Program Files\PostgreSQL\9.4\bin
for %f in (chemin_vers_les_shp\*.shp) do ogr2ogr -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=****** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %f
PAUSE
De plus, ma commande ogr renvoie une erreur lorsque les shp se trouvent déjà dans le shema "temp". J'ai tenté de mettre un -skipfaillure et -overwrite=yes mais ça ne fonctionne pas...
Pouvez vous m'aider?
Merci d'avance!
Hors ligne
#2 Tue 28 March 2017 17:01
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1159
Re: Création fichier .bat à partir de commande OGR
Salut,
je ne sais pas si cela va aider mais il me semble que dans un batch
il faut doubler le caractère % quand on utilise un paramètre de boucle
ex :
Code:
@ECHO OFF SET C:\Program Files\PostgreSQL\9.4\bin for %%f in (chemin_vers_les_shp\*.shp) do ogr2ogr -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=****** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %%f PAUSE
Hors ligne
#3 Tue 28 March 2017 19:37
- cherbe
- Participant occasionnel
- Date d'inscription: 1 Nov 2008
- Messages: 41
Re: Création fichier .bat à partir de commande OGR
Bonsoir
Pas pris le temps de rechercher tes erreurs. Voici ce que j'utilise pour les fichiers du cadastre envoyés dans une base SQLITE :
Code:
FOR /F %%A IN ('DIR *.THF. /b') DO ( ogr2ogr -f "SQLite" %%A.sqlite %%A ) FOR /F %%B IN ('DIR *.sqlite /b') DO ( ogr2ogr -f "SQLite" -append fusion.sqlite %%B )
Dernière modification par cherbe (Tue 28 March 2017 19:41)
Hors ligne
#4 Wed 29 March 2017 10:09
- bruhnild
- Participant actif
- Lieu: Lyon
- Date d'inscription: 7 Jun 2014
- Messages: 130
Re: Création fichier .bat à partir de commande OGR
Merci tumasgiu, pour la tentative de réponse,
Aujourd'hui mon code ressemble à ça:
Code:
@ECHO OFF cd C:\Program Files\PostgreSQL\9.4\bin\ for %%f in (chemin_vers_les_shp\*.shp) do ogr2ogr -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=***** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %%f PAUSE
J'ai une erreur :
Unable to find driver 'PostgreSQL'.
J'ai cherché des pistes sur les forums mais rien qui n'ai vraiment éclairé ma lanterne...
Hors ligne
#5 Wed 29 March 2017 10:33
- bruhnild
- Participant actif
- Lieu: Lyon
- Date d'inscription: 7 Jun 2014
- Messages: 130
Re: Création fichier .bat à partir de commande OGR
Merci cherbe, pour la tentative de réponse,
Aujourd'hui mon code ressemble à ça:
Code:
@ECHO OFF cd C:\Program Files\PostgreSQL\9.4\bin\ for %%f in (chemin_vers_les_shp\*.shp) do ogr2ogr -lco SCHEMA=temp -f "PostgreSQL" PG:"host=localhost user=postgres password=***** dbname=test" -t_srs EPSG:2154 -nlt PROMOTE_TO_MULTI %%f PAUSE
J'ai une erreur :
Unable to find driver 'PostgreSQL'.
J'ai cherché des pistes sur les forums mais rien qui n'ai vraiment éclairé ma lanterne...
Hors ligne
#6 Wed 29 March 2017 10:40
- tumasgiu
- Membre
- Lieu: Ajaccio
- Date d'inscription: 5 Jul 2010
- Messages: 1159
Re: Création fichier .bat à partir de commande OGR
Je crois que la version de OGR shippée avec Postgis n'est pas compilée
avec le driver PostgreSQL.
Si vous tenez absolument à utiliser ce driver, vous pouvez soit utiliser une autre
version de GDAL/OGR qui est compilée avec ce driver , en l'installant à part ou
avec OSGEO4W ( que vous possédez déjà si vous avez QGIS d'installé ),
soit utiliser le driver PGDUMP.
les liens pour les installs :
https://trac.osgeo.org/osgeo4w/
http://www.gisinternals.com/release.php
Dernière modification par tumasgiu (Wed 29 March 2017 10:40)
Hors ligne
#7 Wed 29 March 2017 10:59
- bruhnild
- Participant actif
- Lieu: Lyon
- Date d'inscription: 7 Jun 2014
- Messages: 130
Re: Création fichier .bat à partir de commande OGR
Merci pour le coup de pouce! Ca marche à présent en déclarant le chemin vers OSGEO4W (C:\OSGeo4W64)
Hors ligne