Bonjour,
Cherchant à supprimer dans divers Fichiers *Log.txt des sous éléments définis comme suivant :
voici l'abominable code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Pour chaque ligne lue de Fichier Pour chaque répertoire X (chemin sans point) Si sous-élément X\* existe alors supprimer X\*
pour résumer j'aimerais qu'il soit demandé de valider les propositions de suppression dans le terminal, j'arrangerais ce qui est moche un peu plus tard. Dans l'immédiat le souci c'est %%G et %%A qui sont perdus dans :Suppression. Même si actuellement c'est commenté, j'ai tenté de jouer sur l'expansion retardée, en définissant SET Log=%%G et en appelant !Log! mais ça ne va pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 IF EXIST Doublons.txt DEL Doublons.txt :: SETLOCAL ENABLEDELAYEDEXPANSION FOR %%G IN (*Log.txt) DO ( (ECHO # Analyse %%G ECHO.)>> Doublons.txt FOR /F "TOKENS=*" %%A IN ('Outil\GREP -v "\." %%G ^| Outil\SED "s/\\/\\\\/g;s/%%/\\%%/g"') DO ( FINDSTR /C:"%%A\\" %%G > NUL & IF NOT ERRORLEVEL 1 CALL :Suppression GOTO :EOF )) :Suppression ECHO SUGGESTION ^(%%G^) : %%A| Outil\SED "s/\\\\/\\/g;s/\\%%/%%/g;s/$/\r/g">> Doublons.txt FINDSTR /C:"%1\\" %%G>> Doublons.txt ECHO.>> Doublons.txt FINDSTR /C:"%%A\\" %%G SET /P choix=Supprimer ces doublons O / N ECHO. ECHO. IF %choix%==o (Outil\SED -i "/%%A\\.*$/d;s/$/\r/g" %%G) GOTO :EOF NOTEPAD Doublons.txt
Est-ce que quelqu'un aurait une piste un peu plus élaborée sur les grandes lignes de ce code ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 [...] >ECHO SUGGESTION (%G) : %A | Outil\SED "s/\\\\/\\/g;s/\\%/%/g;s/$/\r/g" 1>>Doublons.txt >FINDSTR /C:"\\" %G 1>>Doublons.txt FINDSTR: Impossible d'ouvrir %G >ECHO.1>>Doublons.txt >FINDSTR /C:"%A\\" %G FINDSTR: Impossible d'ouvrir %G >SET /P choix=Supprimer ces doublons O / N Supprimer ces doublons O / N
Merci![]()
Partager