IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Commande de récupération de chemin courant avec batch


Sujet :

Windows

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut Commande de récupération de chemin courant avec batch
    Bonjour, après une recherche je n'ai aps trouvé de sujet traitant de ce problème en particulier. C'est surement parce que c'est trop simple

    Je souhaiterai récupérer le chemin où est stocké le fichier .bat qui est lancé.
    La commande pwd ne marche pas, via la commadne dir je vois écrit le chemin d'accès, mais je ne sais pas récupérer l'info, faut-il que je copie le résultat de "dir" dans un fichier temp et que je travail dedans après ?

    Enfin bon, si il existe une commande qui donne le chemin courant ca serait plus simple.

    Merci à vous.

  2. #2
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Comme ceci: %~dp0

  3. #3
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Merci beaucoup ca m'aide grandement.

  4. #4
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    De rien

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Pourrais-je abusé de votre temps et vous demander une fois encore mon aide ?

    Grâce à votre aide j'ai pu récupérer l'adresse qui m'interessait, mais j'ai du mal à traiter cette information.
    J'obtiens une chaine de caractère que je souhaiterai couper, j'utilise cette commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FOR /F "usebackq delims=montexte" %%i in (`"%TEST%"`) do @echo %%i
    Dans ma variable TEST est contenu le chemin d'accès.
    montexte correspond à par exemple V3.2\
    Je souhaite récupérer la partie gauche de la chaine de caractère coupée par montexte.

    Merci encore une fois pour votre aide.

  6. #6
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Déja je ne pensse pas que tu puisse utilisé montexte comme délimitateur.

    Ensuite montre moi le chemin complet contenu dans ta variable TEST, et ce que tu veut récupéré.

  7. #7
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Dans TEST il y a :
    C:\eclipse\eclipse\V3.2\eclipse\
    Et je souhaite récupérer tout ce qu'il y a avant "eclipse\eclipse\V3.2\eclipse\"
    Oui ca fait beaucoup d'eclipse

    Mon objectif et de reconnaitre le chemin d'accès du fichier .bat quand il se lance. Comme il peut se lancer de plusieurs endroits différents et que je ne les connaitrais pas, j'ai besoin de récupérer l'adresses qui est avant "eclipse\eclipse\V3.2\eclipse\" afin de pouvoir paramêtrer des variables d'environnement.

    Donc en terme de code je voudrai parvenir à couper cette chaîne de caractères en fonction d'un certain terme et stocker la partie gauche dans une variable.

    Voila vous savez tout

  8. #8
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Citation Envoyé par benoit31
    Dans TEST il y a :
    C:\eclipse\eclipse\V3.2\eclipse\
    Et je souhaite récupérer tout ce qu'il y a avant "eclipse\eclipse\V3.2\eclipse\"
    Oui ca fait beaucoup d'eclipse
    Tu veur récupérer la lettre du lecteur ?
    Si oui c'est: %~d0

    Mais si tu veut récupére tout ce qui se trouve avent eclipse\eclipse\V3.2\eclipse\ et qu'il peut y avoir des noms de répertoire avant, sa va être difficiel parce qu'on ne sais pas combien de répertoire il y aurat.

  9. #9
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Non pas forcément, cela peut être un chemin complet comme D:\logiciel\eclipse\eclipse\V3.2\eclipse

  10. #10
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Mais si tu veut récupére tout ce qui se trouve avent eclipse\eclipse\V3.2\eclipse\ et qu'il peut y avoir des noms de répertoire avant, sa va être difficiel parce qu'on ne sais pas combien de répertoire il y aurat.

  11. #11
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    S'il n'y a qu'un seul répertoire avant on peut faire comme ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=1,2 delims=\" %%i in ("%TEST%") do echo %%i\%%j

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Oui en effet. Mais j'avais cru comprendre qu'on pouvait couper des chaînes de caractères d'ou mon orientation vers cette possible solution.
    Si j'utilise le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    FOR /F "usebackq delims=montexte" %%i in (`"%TEST%"`) do @echo %%i
    Il m'indique qu'il ne reconnait pas C:\eclipse\eclipse\V3.2\eclipse\ comme commande interne ou externe, j'ai tester en mettant directement %~dp0 et c'est pareil...

    Sinon j'avais imaginé d'ecrire le résultat de %~dp0 dans un fichier texte et de travailler dedans directement mais cela oblige d'ecrire un fichier en plus chez l'utilisateur ...

  13. #13
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Si non ta compris le fonctionnement ce cette boucle ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=1,2 delims=\" %%i in ("%TEST%") do echo %%i\%%j

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Oui celle la c'est bon, le token permet de stocker dans i et j la partie gauche et droite de ce qui est contenu dans TEST.
    Le delim donne le caractère où couper.
    Si je mets pas token il m'a semblé comprendre que automatiquement le résultat stocké était celui de gauche (correspondant au 1 si il y avait token donc ce qu'il me faudrait)

    Mais j'ai tester hier avec ca ca ne passe pas non plus

  15. #15
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Par exemple si je met mon fichier .bat ici :
    C:\testeclipse\logiciel\eclipse\eclipse\V3.2\eclipse
    Il me donne pour "i" avec le code que tu m'a montré :
    C:\t

    Ce qui est un progrès en soit

  16. #16
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Après plusieurs tests je conclus que la commande delim ne prend en compte qu'un seul caractère, j'ai testé avec des ' ' ca ne change rien et des " " il aime pas et met un message d'erreur

  17. #17
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Et oui comme on ne sais pas combien il va y avoir de répertoire avec eclipse la boucle peut être faussé

  18. #18
    Membre à l'essai
    Inscrit en
    Avril 2007
    Messages
    34
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 34
    Points : 17
    Points
    17
    Par défaut
    Bon je vais essayer de passer via un fichier texte, il me semble que le traitement de chaines de caractères est plus souple dans ce cas là.
    Je posterais pour dire si ca marche
    Merci pour l'aide en tout cas !

  19. #19
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Je ne pensse pas qu'avec un fichier texte sa sera plus facille.

  20. #20
    Débutant  
    Avatar de koKoTis
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 438
    Points : 2 415
    Points
    2 415
    Par défaut
    Ingiore ce message

    Ah si il y a une solution avec un fichier.txt, bon tu inscrit le chemin dans un fichier.txt, comme ceci je présume:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo %~dp0% > fichier.txt
    Ensuite avec la commande switch (que tu doit dabor télécharger) il te suffira de supprimer ceci \eclipse\eclipse\V3.2\eclipse, voici la syntaxe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    switch fichier.txt "\eclipse\eclipse\V3.2\eclipse" ""
    Et la dans le fichier.txt il ne restera que ce que tu veut.

    Télécharge la commande switch ici: http://download.yousendit.com/EE02060B62B12AF0

Discussions similaires

  1. [XL-2003] Récupération du chemin courant
    Par Fralev dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 12/06/2013, 07h02
  2. Réponses: 1
    Dernier message: 10/12/2010, 04h19
  3. Réponses: 2
    Dernier message: 25/09/2009, 12h12
  4. Probleme de chemin d'acces avec batch
    Par kernerteam dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 28/04/2006, 16h45
  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