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 :

[Batch] Scinder la variable %PATH% avec ;


Sujet :

Windows

  1. #1
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut [Batch] Scinder la variable %PATH% avec ;
    Bonjour,

    Je souhaite scinder la variable %PATH% grâce aux délimiteur ;
    Je ne sais même pas si c'est faisable en Batch (j'aimerai bien me passer de langage hôte si possible).

    Merci de m'indiquer le chemin si possible !
    all your base are belong to us.

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    89
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 89
    Points : 60
    Points
    60
    Par défaut
    hmm... Je ne sais pas trop comment faire, mais ce serait peut etre possible de définir une variable "chemin" dans laquelle tu mets ton %PATH%, et après, dans une variable "1" tu mets par exemple les 10 premières lettres, et dans une variable 2 le reste. Je ne sais pas du tout si c'est faisable^^

    j'espère que quelqu'un de vachement plus calé que moi (c'est pas très dur lol) passeras par ce topic et te répondra précisement^^
    Dans 1 km, y'a 1024 m... C'est simple non?

    Mon entreprise : Steel-Studio

  3. #3
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    Merci quand même, mais les variables variables sont de longueur différente.

    J'ai continuer mes tests, j ai la premiere sous chaine avec ceci : reste a boucler sur les autres...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    @echo off
    for /f "delims=;" %%i in ("%PATH%") do echo %%i
    all your base are belong to us.

  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
    Je ne comprend pas le mot scinder, pourais tu m'expliquer ?

    Peut être que je pourai t'aider

  5. #5
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    Salut,
    je veux faire un "explode" de la variable PATH en plusieurs sous chaines.
    Mon code ci-dessus ne me renvoie que C:\WINDOWS\system32 et je voudrai boucler sur le reste de la chaine.
    C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;
    C:\program files\MinGW\bin;C:\Program Files\UnxUtils\usr\local\wbin;
    etc
    all your base are belong to us.

  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
    Je ne comprend pas explode non plu.

    Donc si je comprend bien tu veut récupérer tous les chemin séparément ?

    Je ne sais pas si c'est ca que tu veut mais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=1,2,3,4,5,6,7,8,9 delims=;" %%i in ("%PATH%") do echo %%i %%j %%k %%l %%m %%n %%o %%p %%q

  7. #7
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    Yep c'est ce que je veut faire !
    Cependant, le nombre de sous chaînes produite étant variable, comment connaître le nombre de Tokens ? y a t il une autre solution ou un caractere special pour les tokens (type "tokens=1,*) ?
    all your base are belong to us.

  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
    Pour le tokens on peut aller jusqu'a 26, le nombre de lettre de l'alphabet, s'il y a plus de token que de chemin c'est pas grave, fait en 26 au moin c'est fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /f "tokens=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26 delims=;" %%a in ("%PATH%") do echo %%a %%b %%c %%d %%e %%f %%g %%h %%i %%j %%k %%l %%m %%n %%o %%p %%q %%r %%s %%t %%u %%v %%w %%x %%y %%z

  9. #9
    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 blast killer a trouver une autre solution:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    setlocal enabledelayedexpansion
    set acc=0
    set var=%path%
    :boucle
    set /a acc+=1
    if "%var%"=="%varbck%" pause &exit
    for /f "delims=;" %%i in ("%var%") do set a%acc%=%%i
    echo !a%acc%!
    set varbck=%var%
    set var=%var:*;=%
    goto boucle

  10. #10
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    Pour le tokens on peut aller jusqu'a 26
    Certe, j'avais lu ca dans help.

    Le code de blast killer fonctionne, je vais me renseigner sur tout ces mots clé que je ne connais pas. (devrait pas poser trop de problèmes).

    Okey, merci pour toutes ces infos !!
    all your base are belong to us.

  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
    Citation Envoyé par TheDrev Voir le message
    je vais me renseigner sur tout ces mots clé que je ne connais pas.
    Quel mots clés ?

  12. #12
    Membre actif
    Avatar de TheDrev
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    310
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 310
    Points : 263
    Points
    263
    Par défaut
    enabledelayedexpansion, et les aut'machin comme le : devant boucle.
    J'ai deja trouve dans une doc, je verrai cela se soir....
    all your base are belong to us.

  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
    Citation Envoyé par TheDrev Voir le message
    enabledelayedexpansion, et les aut'machin comme le : devant boucle.
    J'ai deja trouve dans une doc, je verrai cela se soir....

    enabledelayedexpansion, c'est pour activer l'expension retarder des variable (pour créer et utiliser une variable dans une même boucle for)

    : devant boucle, : sinifi que c'est une étiquette, on se dirige ver cette étiquette avec un goto

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

Discussions similaires

  1. JDK bien installé mais problème avec la variable PATH
    Par abysr dans le forum EDI et Outils pour Java
    Réponses: 4
    Dernier message: 27/10/2014, 18h15
  2. Path avec une variable
    Par herroP dans le forum VB.NET
    Réponses: 2
    Dernier message: 19/05/2012, 11h51
  3. Réponses: 1
    Dernier message: 19/10/2011, 13h31
  4. Batch - modification d'un txt avec des variables
    Par avrilspirit dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 25/06/2010, 23h32
  5. Cacher Variable Url avec Variable Globale
    Par danuz dans le forum XMLRAD
    Réponses: 6
    Dernier message: 26/09/2003, 17h20

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