[batch] extraire une partie d'un chemin

s7even Messages postés 4 Statut Membre -  
s7even Messages postés 4 Statut Membre -
Bonjour,

j'ai un fichier txt comprennant une liste de fichier avec leur chemin absolu que j'ai créé comme ca :

dir /b /s "rep" > list.txt


mes chemins sont du style :
C:\Mes Docs\blabla\Travail\projet1\fichier1.txt
C:\save\Travail\projet3\fichierX.txt


j'amerais transformer les chemins dans mon fichier en :
Travail\projet1\fichier1.txt
Travail\projet3\fichierX.txt


dans mon exemple "Travail" est une référence pour découper mes chemins
j'ai essayé avec un set mais je m'en sors pas
SVP ne me renvoyez pas vers d'autres sujet je les ai déjà lu et je n'ai pas avancé

merci d'avance
Configuration: Windows 7
Firefox 3.5.5

7 réponses

  1. toto1983 Messages postés 161 Date d'inscription   Statut Membre Dernière intervention   13
     
    Ok t'es sur quel système d'exploitation ? quelle version ?
    0
  2. s7even Messages postés 4 Statut Membre
     
    Je suis sous Win 7 64b mais mon code doit pouvoir tourner a partir de XP
    0
  3. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    hello
    seulement en DOS ou avec un outil à télécharger comme sed ?
    C:> type f1.txt
    C:\Mes Docs\blabla\Travail\projet1\fichier1.txt
    C:\save\Travail\projet3\fichierX.txt
    C:>
    C:> sed "s/^.*\\Travail/Travail/" f1.txt
    Travail\projet1\fichier1.txt
    Travail\projet3\fichierX.txt
    

    https://forums.commentcamarche.net/forum/affich-37620020-sed-introduction-a-sed-part-ii#windows
    0
  4. s7even Messages postés 4 Statut Membre
     
    Le probleme c'est que ce n'est qu'une petit partie d'un gros code et j'aimerais ne pas avoir a installer de nombreux trucs a chaque fois que j'ai u code peu cooperatif :D

    et la dans mon exemple j'ai 2 fichier, mais dans mon code j'en ai plusieurs centaines :s

    je vais regarder sed mais je prefererais que ca soit faisable avec cmd

    EDIT : j'ai regardé ca serait vraiment trop lourd de l'integrer. Mon code n'est pas destiné qu'a mon ordinateur donc ca devient trop complexe
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    une solution qui ne fonctionne que si il y a un seul T majuscule dans le chemin
    C:> type f1.txt
    C:\Mes Docs\blabla\Travail\projet1\fichier1.txt
    C:\save\Travail\projet3\fichierX.txt
    
    C:> aa
    Travail\projet1\fichier1.txt
    Travail\projet3\fichierX.txt
    
    C:> type aa.bat
    @echo off
    for /f "delims=" %%a in ('type f1.txt') do (
    for /f "tokens=1,2 delims=T" %%b in ('echo %%a') do  echo T%%c
    )
    
    0
  7. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    ou
    @echo off 
    setlocal enableDelayedExpansion
    for /f "delims=" %%a in ('type f1.txt') do (
    set c=%%a
    echo !c:*Travail=Travail!
    )
    0
  8. s7even Messages postés 4 Statut Membre
     
    merci pour tes reponses, j'ai utilisé la deuxieme solution et ca fonctionne
    0