[batch] extraire une partie d'un chemin

Fermé
s7even Messages postés 4 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009 - 30 nov. 2009 à 15:44
s7even Messages postés 4 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009 - 1 déc. 2009 à 13:34
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 samedi 16 mai 2009 Statut Membre Dernière intervention 25 mars 2010 13
30 nov. 2009 à 15:50
Ok t'es sur quel système d'exploitation ? quelle version ?
0
s7even Messages postés 4 Date d'inscription lundi 30 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009
30 nov. 2009 à 15:56
Je suis sous Win 7 64b mais mon code doit pouvoir tourner a partir de XP
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
30 nov. 2009 à 16:31
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 lundi 30 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009
30 nov. 2009 à 16:40
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 déc. 2009 à 07:58
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 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 déc. 2009 à 09:56
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 lundi 30 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009
1 déc. 2009 à 13:34
merci pour tes reponses, j'ai utilisé la deuxieme solution et ca fonctionne
0