Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1353 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Suppression d'entrées dans le PATH en batch !!

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Suppression d'entrées dans le PATH en batch !!

n°2002644
blutching
Posté le 18-06-2010 à 09:43:03  profilanswer
 

Bonjour,
 
j'aimerai savoir comment faire pour supprimer des entrées repérer par une chaine de caractère dans la variable d'environnement PATH depuis un batch.
En gros, j'ai une chaine TOTO et mon PATH est dans ce style:
E:\blabla;E:\blibli;E:\bloblo\TOTO\blabli;E:\blublu; etc..etc..
 
et je voudrais virer toutes les entrées qui contiennent TOTO pour que mon PATH soit ainsi:
E:\blabla;E:\blibli;;E:\blublu; etc..etc..
 
Sachant qu'il peut y avoir plusieurs entrée qui possèdent la chaine TOTO et que le séparateur d'entrée est toujours ";"
Je sais pas si j'ai été très clair. lol !!
Je pense qu'il faille faire ça en plusieurs étape, style:

  • découper le PATH par rapport au séprateur ";" en mettant le résultat dans un fichier.
  • lire le fichier et supprimer les entrées où il y a TOTO.
  • écraser le PATH par les valeurs restantes.


Est-ce une bonne méthode et si oui quels sont les commandes pour faire ça ..sinon je suis ouvert à toutes propositions pouvant m'aider.
Merci de votre aide ou de toutes réponses pouvant me faire avancer.

mood
Publicité
Posté le 18-06-2010 à 09:43:03  profilanswer
 

n°2002804
aigles
Posté le 18-06-2010 à 15:40:38  profilanswer
 

Je n'ai pas trouvé de commande miracle permettant de découper le PATH par rapport au séparateur ';'
Si elle existe je suis intéressé.
 
Voici une solution qui fait un peu usine à gaz (j'ai utilisé la variable MY_PATH au lieu de PATH pour mes tets) :

Code :
  1. SET MY_PATH=C:\Logiciel\Appli1;U:\temp;U:\bin;C:\LOGICIEL\COMMUN
  2. ECHO old_path=%MY_PATH%
  3. CALL :REMOVE_FROM_PATH "logiciel"
  4. ECHO new_path=%new_path%
  5. GOTO :EOF
  6. GOTO :_AFTER_REMOVE_FROM_PATH
  7. :REMOVE_FROM_PATH
  8.    SET old_path=%MY_PATH%
  9.    SET new_path=
  10.  
  11.    :: -------------------------------------------
  12.    :: Boucle de traitement du path actuel
  13.    ::--------------------------------------------
  14.  
  15. :_RFP00
  16.    ::---------------------------------
  17.    :: Recuperation repertoire
  18.    ::---------------------------------
  19.  
  20.    IF "%old_path%" == "" GOTO :_RFP90
  21.    SET last_dirs=%old_path:*;=%
  22.    IF "%last_dirs%" == "%old_path%" GOTO :_RFP10
  23.    CALL SET dir=%%old_path:%last_dirs%=%%
  24.    SET dir=%dir:~0,-1%
  25.    GOTO :_RFP20
  26. :_RFP10
  27.    SET dir=%last_dirs%
  28.    SET last_dirs=
  29. :_RFP20
  30.    SET old_path=%last_dirs%
  31.  
  32.    ::---------------------------------
  33.    :: Filtrage repertoire pour
  34.    :: constitution nouveau path
  35.    ::---------------------------------
  36.  
  37.    IF "%dir%" == "" GOTO :_RFP30
  38.    SET fdir=
  39.    FOR /F "tokens=*" %%d IN (' CMD /S /C "ECHO %dir%| FIND /I /V %*" ') DO SET fdir=%%d
  40.    IF NOT "%fdir%" == "" SET new_path=%new_path%;%fdir%
  41. :_RFP30:
  42.    ::---------------------------------
  43.    :: Fin boucle traitement path
  44.    ::---------------------------------
  45.    GOTO :_RFP00
  46. :_RFP90
  47.    IF NOT "%new_path%" == "" SET new_path=%new_path:~1%
  48.    SET MY_PATH=%new_path%
  49.    GOTO :EOF     
  50. :_AFTER_REMOVE_FROM_PATH

Le résultat :

old_path=C:\Logiciel\Appli1;U:\temp;U:\bin;C:\LOGICIEL\COMMUN
new_path=U:\temp;U:\bin


 
Jean-Pierre.

n°2003374
blutching
Posté le 21-06-2010 à 16:02:05  profilanswer
 

Whaouuu ...
super ça marche nickel ...c'est clair que c'est un peu lourd comme programme..mais ça fait ce que je demande donc merci beaucoup !!!


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Suppression d'entrées dans le PATH en batch !!

 

Sujets relatifs
[Batch] Une condition qui n'est pas vérifiéebatch msdos et port série
fichier batch[Résolu] Isoler les entrées uniques Access
[Batch - Débutante] Récupérer l'IP après le ping d'une machineSuppression de RDV dans Outlook via macro Excel
[batch] Supprimer un fichier par rapport à la date[BATCH-WMI] Win 2k8 - attribuer une lettre à un nouveau disque
include path : ini_set ou htaccess ?[BATCH] Comment formatter des noms de variables dans un loop ?
Plus de sujets relatifs à : Suppression d'entrées dans le PATH en batch !!


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR