PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 30/03/2016 18:14:16

Sogg33
Membre

Problème de chemin en réseau

Bonjour!

Je tente en vain de faire des extractions de requêtes sur un réseau (via cmd psql). Je voudrais que mon batch marche même s’il est déplacé, donc le principe serait de faire comme pour les chemins relatifs en local (testé en local, ça marche nickel). A la place de .\ je voulais donc mettre %~dp0

Par exemple : psql -h localhost -p port -U user -d bbd < %~dp0RequeteSQL\fichier.sql

Mais le chemin n’est pas reconnu  (à cause des espaces et accents dans les noms des dossiers je pense). Mais si je mets des « » autour du chemin la commande psql n’est plus reconnue.
Connaissez vous un moyen pour résoudre ce genre de problème?

Autre question :
(Si j’arrive à résoudre le pb 1)

Si la commande psql est reconnue, elle exécutera mon fichier.sql. Les fichiers sql exécutés pointent eux même vers un chemin (ou sera extrait la sortie). En local je peux mettre :  .\nomFichieràExtraire.csv pour les extraire à la racine, comment faire lorsque je ne suis pas en local ? Je n’ai pas l’impression que %~dp0 marche dans ce genre de fichier.
Exemple : \copy(requête) TO ‘.\ nomFichieràExtraire.csv’ WITH (format csv,…)

Hors ligne

#2 30/03/2016 18:53:24

gleu
Administrateur

Re : Problème de chemin en réseau

C'est la première fois que je vois un chemin %~dp0. Ça a une signification particulière ?

Hors ligne

#3 31/03/2016 09:20:52

Sogg33
Membre

Re : Problème de chemin en réseau

Bonjour,

J'ai trouvé ça sur des forums, ça permet de récupérer un chemin jusqu'à la racine de mon batch en réseau.

Par exemple:
set path=%~dp0
echo %path%

Ca me renvoie : '\\reseau\...\...\racineDeMonBatch'

Alors que si j'utilise echo %CD% il me renvoie le répertoire qu'il utilise par défaut, à savoir : C:\Windows

Hors ligne

#4 31/03/2016 18:08:39

gleu
Administrateur

Re : Problème de chemin en réseau

OK, soit. Pourriez-vous mettre la commande exacte que vous lancez et l'erreur exacte que vous récupérez ?

Hors ligne

#5 01/04/2016 10:51:18

Sogg33
Membre

Re : Problème de chemin en réseau

Bonjour,

J'ai un peu avancer sur mon problème.
En fait la commande suivante marche bien:
psql -h localhost -p port -U user -d bbd < "%~dp0RequeteSQL\fichier.sql"

Le soucis vient du chemin indiquant l'extraction de mon csv situé dans mon fichier.sql
J'aurai voulu pointer la racine du fichier comme dans mon batch avec "%~dp0 mais cette cmd ne semble pas être reconnu par mon sql et je suis obligé de mettre le chemin en entier.

Voici ce que je fais dans mon sql pour le moment : \copy(requete) TO '"%~dp0fichier.csv' (format csv, ...)

Hors ligne

Pied de page des forums