1. #1
    Nouveau Membre du Club
    Homme Profil pro
    Inscrit en
    février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : février 2009
    Messages : 37
    Points : 29
    Points
    29

    Par défaut Récupération du chemin du script en cours

    Bonjour à tous,

    Je cherche un moyen de récupérer le chemin complet du script dans lequel je me trouve au cours d'une execution. Pour faciliter je cherche un moyen non dépendant de l'OS (commande externe exclue donc) et je ne souhaite pas avoir à passer cette information en tant que paramètre (oui je fais dans le simple). Je considère aussi que le chemin de ce script peut très bien ne pas être le chemin en cours (cwd) lors de l'exécution.

    Quelque chose de similaire à la variable $0 mais avec le chemin serait parfait en fait mais je n'ai rien trouvé de concluant...

    Merci d'avance.

  2. #2
    Expert Confirmé Sénior
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    avril 2003
    Messages
    6 215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : avril 2003
    Messages : 6 215
    Points : 8 402
    Points
    8 402

    Par défaut

    Tu as le module FindBin (dans le CORE), pas idéal mais mieux que rien.

    --
    Jedaï

  3. #3
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    17 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 17 489
    Points : 491 958
    Points
    491 958

    Par défaut

    J'ai pas tout saisi, mais voici un code qui pourrait te suffire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #!/usr/bin/perl
    use Cwd; 
    use warnings;
    use strict;
     
    print "Nom OS : ",$^O,"\n";
    print "Script courant : ",$0,"\n";
    print "Répertoire Courant : ",getcwd,"\n";

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  4. #4
    Nouveau Membre du Club
    Homme Profil pro
    Inscrit en
    février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : février 2009
    Messages : 37
    Points : 29
    Points
    29

    Par défaut

    Le probleme du cwd c'est qu'il va me renvoyer le répertoire courant donc mettons que je me trouve dans /home/deneteth, si j'exécute le script /usr/bin/test.pl je vais récupérer /home/deneteth et pas /usr/bin/ (ce que je recherche).

    Pour ce qui est du FindBin par contre il y a peut être quelque chose (le basename semble correspondre à ce que je recherche). Je vais regarder cela de plus près.

    Merci !

  5. #5
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    avril 2004
    Messages
    17 489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 17 489
    Points : 491 958
    Points
    491 958

    Par défaut

    as tu testé le script ?

    Pas de questions technique par messagerie privée (lisez les règles du forum Perl) et pour les nouveaux !

  6. #6
    Nouveau Membre du Club
    Homme Profil pro
    Inscrit en
    février 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : février 2009
    Messages : 37
    Points : 29
    Points
    29

    Par défaut

    Ben rapido oui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    use Cwd;
    use FindBin qw ( $Bin $Script );
     
    print "Trouvé $Script dans $Bin \n";
     
    $test = getcwd();
     
    print "Trouvé $0 dans $test\n";
     
    exit 0;
    J'ai bien le chemin recharché dans le premier cas, je récupère mon répertoire en cours dans le second (C: dans mon cas).

    Par contre je retire ce que j'ai dit sur $0, il m'a effectivement retourné le chemin complet ce coup-ci et pas dans mon autre script... je vais regarder cela de plus prêt.

    Je passe résolu de toute façon, j'ai effectivement un moyen de récupérer le chemin qui m'intéresse.

  7. #7
    Candidat au titre de Membre du Club
    Inscrit en
    octobre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : octobre 2008
    Messages : 12
    Points : 10
    Points
    10

    Par défaut

    je déterre ce sujet résolu pour apporter une petite précision (qui a déjà été évoqué à propos du basename).

    La variable $0 est à traiter avec le module Find :
    use Find::Basename;
    my $nom_script = basename $0; #=> nom du script
    my $rep_script = dirname $0;#=> repertoire du script quelque soit le repertoire courant de lancement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/04/2009, 10h03
  2. Récupérer chemin absolu du script en cours d'exécution
    Par greatmaster1971 dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 15/09/2008, 09h07
  3. afficher le chemin du script executé
    Par Mokhtar BEN MESSAOUD dans le forum Général Python
    Réponses: 2
    Dernier message: 07/07/2006, 16h06
  4. input type=file, récupération du chemin
    Par alexthomas dans le forum Fichiers
    Réponses: 5
    Dernier message: 22/11/2005, 14h02
  5. Récupération du chemin d'une image
    Par kurul1 dans le forum C++Builder
    Réponses: 5
    Dernier message: 26/09/2005, 10h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo