[batch] extraire une partie d'un chemin

s7even Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -  
s7even Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

7 réponses

toto1983 Messages postés 205 Date d'inscription   Statut Membre Dernière intervention   13
 
Ok t'es sur quel système d'exploitation ? quelle version ?
0
s7even Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
Je suis sous Win 7 64b mais mon code doit pouvoir tourner a partir de XP
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
s7even Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
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
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
ou
@echo off 
setlocal enableDelayedExpansion
for /f "delims=" %%a in ('type f1.txt') do (
set c=%%a
echo !c:*Travail=Travail!
)
0
s7even Messages postés 4 Date d'inscription   Statut Membre Dernière intervention  
 
merci pour tes reponses, j'ai utilisé la deuxieme solution et ca fonctionne
0