Voui ca marche reste encore à optimiser au maximum le process pour ne rien oublier mais ca sera toujours plus long qu'un vrai logiciel multithreadé
L'avantage c'est que tous ceux qui veulent y rajouter leurs améliorations peuvent le faire très simplement soit en renvoyant directement le code avec leurs modifications soit en mettant juste les lignes à rajouter/enlever
Salut pseudoz,
Ton script est "simple" et efficace ... mais peut-être un peu trop.
Tu passes par une méthode globale pour éviter d'utiliser languagesfiles.txt mais il y a quelques inconvénients.
Ça supprime les fichiers langues d'AmokBurning (AmoK_DVD_Burner.lng), d'uTorrent (uTorrent.lng), de DSynchronize (DSynchronize.lng), de DupKiller (DupKiller.lng), de FastExplorer (FastExplorer.lng), de NeroCD (NeroCD.lng), j'en oubli surement
Comme dit précédemment, un fichier languagesfiles.txt construit en commun serait tout aussi efficace et beaucoup moins risqué.
Echo - Nettoyage des fichiers de langues inutiles For /F "tokens=*" %%G IN ('DIR /B /AA /S %Files%') do del "%%G" /Q 1>>CleanFiles.txt 2>>CleanFiles-Errors.txt
Echo - Nettoyage des repertoires de locales For /F "tokens=*" %%G IN ('DIR /B /AD /S %Locales%') do rmdir "%%G" /S /Q 1>>CleanDirs.txt 2>>CleanDirs-Errors.txt
@skybird en effet vu que je n'ai pas les logiciels en question j'avais pas fait attention, donc je vais travailler sur le sujet.
v0.4 avec un mode DEBUG donc vous pouvez tester en toute tranquillité le script puisque si vous l'activez il n'y aura aucune suppression par contre vous pourrez voir ce qu'il aurait du supprimer dans les fichiers de logs CleanFiles.txt et CleanDirs.txt
La prochaine version corrigera les erreurs du style French<slash>AmoK_DVD_Burner.lng
rem rem Ce fichier doit se trouver à l'endroit où il y a les répertoires rem Apps et LiberKeyTools rem rem VOTRECLEUSB rem |-> Le répertoire LiberKey (où le nom qui vous lui avez donné) rem |-> Le répertoire Apps rem |-> Le répertoire LiberKeyTools rem |-> ce fichier.cmd
rem -SI VOUS DEVEZ RAJOUTER DES FICHIERS/REPERTOIRES DE LOCALES C EST ICI- Set Files=v*.lng w*.lng x*.lng y*.lng z*.lng Set Files=p*.lng q*.lng r*.lng s*.lng t*.lng u*.lng %Files% Set Files=j*.lng k*.lng l*.lng n*.lng o*.lng %Files% Set Files=a*.lng b*.lng c*.lng d*.lng g*.lng h*.lng i*.lng %Files%
Set Locales=th tk tl tr tt ug uk ur uz@cyrillic uz vi wa xh yi zh Set Locales=rw si sk sl sq sr@ije sr@latin sr sv ta te tg %Locales% Set Locales=nl nn nso oc or pa pl ps pt pt_BR ro ru %Locales% Set Locales=ko ku li lt lv mai mg mi mk ml mn mr ms nb ne %Locales% Set Locales=ga gl gu he hi hr hu hy ia id it io is ja ka km kn %Locales% Set Locales=ca@valencia ca crh cs cy da de dz el eo es et eu fa fi fy %Locales% Set Locales=ast af am ang ar az az_IR be@latin be bg bn bn_IN br bs %Locales% rem ----------------------------------------------------------------------
Echo V0.4Beta-09042009 Echo Nettoyage en cours (Allez vous boire une biere...) Echo Pensez a voir les logs qui sont generes pendant le traitement Echo.
echo Activer le Mode DEBUG (Sans Supression) ? (O=Oui ; N=Non) set /P Debug= echo.
Setlocal ENABLEDELAYEDEXPANSION Set P=0 Set P1=0 Set P2=0 Set Dossier=Apps
set debhour=%time:~0,2% set debmin=%time:~3,2% set debsec=%time:~6,2% Echo Process demarre a %debhour%h %debmin%m %debsec%s
if /i "%Debug%"=="O" (goto :files) Echo - Calcul de la taille du repertoire %Dossier% avant le nettoyage For /R %Dossier% %%I In (*.*) Do Set /A P1=!P1!+%%~ZI/1048 Echo -- %P1% KOctets
Echo - Suppression de la lecture seule des fichiers et repertoires attrib /S /D -R
:files Echo - Nettoyage des fichiers de langues inutiles if /i "%Debug%"=="N" (goto :supfiles) else (goto :nosupfiles)
:supfiles echo -- MODE AVEC SUPPRESSION Voir les logs CleanFiles* For /F "tokens=*" %%G IN ('DIR /B /S %Files%') do del "%%G" /Q 1>>CleanFiles.txt 2>>CleanFiles-Errors.txt goto :locales
:nosupfiles echo -- MODE SANS SUPPRESSION Voir les logs CleanFiles* For /F "tokens=*" %%G IN ('DIR /B /S %Files%') do echo del "%%G" /Q 1>>CleanFiles.txt 2>>CleanFiles-Errors.txt
:locales Echo - Nettoyage des repertoires de locales if /i "%Debug%"=="N" (goto :supdirs) else (goto :nosupdirs)
:supdirs echo -- MODE AVEC SUPPRESSION Voir les logs CleanDirs* For /F "tokens=*" %%G IN ('DIR /B /AD /S %Locales%') do rmdir "%%G" /S /Q 1>>CleanDirs.txt 2>>CleanDirs-Errors.txt goto :suite
:nosupdirs echo -- MODE SANS SUPPRESSION Voir les logs CleanDirs* For /F "tokens=*" %%G IN ('DIR /B /AD /S %Locales%') do echo rmdir "%%G" /S /Q 1>>CleanDirs.txt 2>>CleanDirs-Errors.txt
:suite set finhour=%time:~0,2% set finmin=%time:~3,2% set finsec=%time:~6,2% Echo Process fini a %finhour%h %finmin%m %finsec%s
if /i "%Debug%"=="O" (goto :end) Echo - Calcul de la taille du repertoire %Dossier% apres le nettoyage For /R %Dossier% %%I In (*.*) Do Set /A P2=!P2!+%%~ZI/1048 Echo -- %P2% KOctets
rem set /a hour= %finhour% - %debhour% rem set /a min= %finmin% - %debmin% rem set /a sec= %finsec% - %debsec%
Echo. rem Echo Temps de calcul %hour%h %min%m %sec%s Set /A P=!P1!-!P2! Set /A PMO=!P!/1024 Echo %P% Ko (%PMO% Mo) de gagne
L'avantage c'est que tous ceux qui veulent y rajouter leurs améliorations peuvent le faire très simplement soit en renvoyant directement le code avec leurs modifications soit en mettant juste les lignes à rajouter/enlever
Dans ce cas pourrais tu éditer tes posts qui contiennent le code batch, pour y mettre un peu de concaténation ?
rem -SI VOUS DEVEZ RAJOUTER DES FICHIERS/REPERTOIRES DE LOCALES C EST ICI- Set Files=v*.lng w*.lng x*.lng y*.lng z*.lng Set Files=p*.lng q*.lng r*.lng s*.lng t*.lng u*.lng %Files% Set Files=j*.lng k*.lng l*.lng n*.lng o*.lng %Files% Set Files=a*.lng b*.lng c*.lng d*.lng g*.lng h*.lng i*.lng %Files%
Set Locales=th tk tl tr tt ug uk ur uz@cyrillic uz vi wa xh yi zh Set Locales=rw si sk sl sq sr@ije sr@latin sr sv ta te tg %Locales% Set Locales=nl nn nso oc or pa pl ps pt pt_BR ro ru %Locales% Set Locales=ko ku li lt lv mai mg mi mk ml mn mr ms nb ne %Locales% Set Locales=ga gl gu he hi hr hu hy ia id it io is ja ka km kn %Locales% Set Locales=ca@valencia ca crh cs cy da de dz el eo es et eu fa fi fy %Locales% Set Locales=ast af am ang ar az az_IR be@latin be bg bn bn_IN br bs %Locales% rem ----------------------------------------------------------------------
Le forum apprécie moyennement les lignes qui font 3 kilomètres et pour la lecture ce n'est vraiment pas top. Merci
Voici la v0.5 avec exclusions pour les fichiers LNG
Pour pouvoir exclure des choses vous devez créez un fichier Exclusions.txt au même endroit que le script avec dedans pour l'instant (Je compte sur vous pour l'agrandir)
rem rem Ce script supprime les fichiers de langues (.lng) et les répertoires rem de locales contenant les langues des logiciels se trouvant dans les sous rem répertoires où est placé ce script. rem rem Ce fichier doit se trouver à l'endroit où il y a les répertoires rem Apps et LiberKeyTools rem rem VOTRECLEUSB rem |-> Le répertoire LiberKey (où le nom qui vous lui avez donné) rem |-> Le répertoire Apps rem |-> Le répertoire LiberKeyTools rem |-> ce fichier.cmd rem |-> Exclusions.txt rem rem Ce script est configuré par DEFAULT pour ne pas supprimer les fichiers rem de langues anglaises et francaises mais peut etre modifié à volonté rem
rem -SI VOUS DEVEZ RAJOUTER DES FICHIERS/REPERTOIRES DE LOCALES C EST ICI- Set Files=v*.lng w*.lng x*.lng y*.lng z*.lng Set Files=p*.lng q*.lng r*.lng s*.lng t*.lng u*.lng %Files% Set Files=j*.lng k*.lng l*.lng m*.lng n*.lng o*.lng %Files% Set Files=a*.lng b*.lng c*.lng d*.lng g*.lng h*.lng i*.lng %Files%
Set Locales=th tk tl tr tt ug uk ur uz@cyrillic uz vi wa xh yi zh zh_tw Set Locales=rw si sk sl sq sr@ije sr@latin sr sv ta te tg %Locales% Set Locales=nl nn nso oc or pa pl ps pt pt_BR ro ru %Locales% Set Locales=ko ku li lt lv mai mg mi mk mn mr ms nb ne %Locales% Set Locales=ga gl gu he hi hr hu hy ia id it io is ja ka km kn %Locales% Set Locales=ca@valencia ca crh cs cy da de dz el eo es et eu fa fi fy %Locales% Set Locales=ast af am ang ar az az_IR be@latin be bg bn bn_IN br bs %Locales%
rem Ne pas mettre pour Locales: ml car AIMP l'utilise rem ----------------------------------------------------------------------
Echo V0.5Beta-10042009 Echo Nettoyage en cours (Allez vous boire une biere...) Echo Pensez a voir les logs qui sont generes pendant le traitement Echo.
echo Activer le Mode DEBUG (Sans Suppression) ? (O=Oui ; N=Non) set /P Debug= echo.
Setlocal ENABLEDELAYEDEXPANSION Set P=0 Set P1=0 Set P2=0 Set Dossier=Apps
set debhour=%time:~0,2% set debmin=%time:~3,2% set debsec=%time:~6,2% Echo Process demarre a %debhour%h %debmin%m %debsec%s
if /i "%Debug%"=="O" (goto :files) Echo - Calcul de la taille du repertoire %Dossier% avant le nettoyage For /R %Dossier% %%I In (*.*) Do Set /A P1=!P1!+%%~ZI/1048 Echo -- %P1% KOctets
Echo - Suppression de la lecture seule des fichiers et repertoires attrib /S /D -R
:files Echo - Nettoyage des fichiers de langues inutiles if /i "%Debug%"=="O" (goto :nosupfiles)
echo -- MODE AVEC SUPPRESSION Voir les logs CleanFiles* FOR /F "eol=; tokens=* delims= " %%A IN (Exclusions.txt) do ( set eclus="| find /V /I "%%A"" for /f "useback tokens=*" %%a in ('!eclus!') do set eclus=%%~a set "exclu=!exclu!!eclus!" ) For /F "tokens=*" %%G IN ('"DIR /B /S %Files% !exclu!"') do del "%%G" /F /Q 1>>CleanFiles.txt 2>>CleanFiles-Errors.txt goto :locales
:nosupfiles echo -- MODE SANS SUPPRESSION Voir le log CleanFiles.txt FOR /F "eol=; tokens=* delims= " %%A IN (Exclusions.txt) do ( set eclus="| find /V /I "%%A"" for /f "useback tokens=*" %%a in ('!eclus!') do set eclus=%%~a set "exclu=!exclu!!eclus!" ) For /F "tokens=*" %%G IN ('"DIR /B /S %Files% !exclu!"') do echo del "%%G" /F /Q 1>>CleanFiles.txt
:locales Echo - Nettoyage des repertoires de locales if /i "%Debug%"=="O" (goto :nosupdirs)
echo -- MODE AVEC SUPPRESSION Voir les logs CleanDirs* For /F "tokens=*" %%G IN ('DIR /B /AD /S %Locales%') do rmdir "%%G" /S /Q 1>>CleanDirs.txt 2>>CleanDirs-Errors.txt goto :suite
:nosupdirs echo -- MODE SANS SUPPRESSION Voir le log CleanDirs.txt For /F "tokens=*" %%G IN ('DIR /B /AD /S %Locales%') do echo rmdir "%%G" /S /Q 1>>CleanDirs.txt
:suite if /i "%Debug%"=="O" (goto :end) Echo - Calcul de la taille du repertoire %Dossier% apres le nettoyage For /R %Dossier% %%I In (*.*) Do Set /A P2=!P2!+%%~ZI/1048 Echo -- %P2% KOctets
Echo. Set /A P=!P1!-!P2! Set /A PMO=!P!/1024 Echo %P% Ko (%PMO% Mo) de gagne
:end set finhour=%time:~0,2% set finmin=%time:~3,2% set finsec=%time:~6,2% Echo Process fini a %finhour%h %finmin%m %finsec%s echo. Pause
Je suis têtu, mais je persiste et je signe ! Ta façon de concevoir la suppression est trop risquée !! (même avec la mise en place d'un fichier d'exclusion et le système de DEBUG)
Si une personne lance ton script et qu'elle n'a pas la même liste de programme que toi, après que le script ait fini de travailler comment fait-elle pour savoir quels fichiers langues étaient à mettre en exclusion alors qu'ils ont par défaut été supprimés ?
Ce n'est pas la fin du monde, ce ne sont que des fichiers langues mais quand même je déconseille d'utiliser ton script (avec ce système d'exclusion.)
Tu es passé par une méthode globale pour sans doute éviter d'avoir un fichier supplémentaire (languagesfiles.txt) mais au final tu en as quand même un (exclusions.txt)...
J'ai préféré faire un fichier Exclusions.txt pour que tout le monde le mette à jour (et ne mette à jour que ça dans le futur), j'aurais très bien pu m'en passer...
J'ai créé la fonction DEBUG pour justement éviter les boulettes...et diagnostiquer les exclusions...
J'ai créé un BAT afin que tout le monde soit rassuré sur le code/virus/spyware
J'ai testé de A à Z la version 0.5 et cela m'a libéré 133 MO (je n'ai pas tout à fait l'ultimate mais comme j'ai une petite clé de 4 Go beaucoup plus rapide que d'autres plus grande et que je ne veux pas changer je n'ai pas le choix)
J'ai donné la solution en début de ce forum pour passer le LangageFiles.txt dans la moulinette ainsi que la méthode dans la 0.5 pour concaténer le tout. Si tu veux t'y mettre y'a pas de problème....
Je ne me revendique aucunement propriétaire de ce script (libre à toi de le modifier pour tes besoins personnels et de nous le mettre à dispo), il y a juste eu une demande lors de la création de ce post et j'en fourni une réponse.
Ne te sens pas agressé, je ne critique en rien ton script, j'ai juste dit que je n'étais pas d'accord avec toi sur la façon de concevoir la suppression. Ce sont deux choses totalement différentes.
pseudoz écrit:
J'ai préféré faire un fichier Exclusions.txt pour que tout le monde le mette à jour (et ne mette à jour que ça dans le futur)
Il en va de même avec languagesfiles.txt mais c'est vrai que le fichier texte, est du coup, nettement plus long.
J'ai créé un BAT afin que tout le monde soit rassuré sur le code/virus/spyware
Ce n'est pas très sympa d'insinuer qu'un exécutable proposé peut peut-être contenir un logiciel malveillant.
Ça reste tout de même compréhensible.
C'est dommage de réagir comme ceci. Est-ce que ça signifie qu'il est préférable de ne pas participer plutôt que de critiquer ?
Que ce soit un fichier texte, qu'il y ai une extension ou non il suffit juste de l'ajouter dans la liste et il sera supprimé...
Ah ben ça c'est une bonne chose
mais pour le cas Amok
...soit je met AmokBurning comme "exception" dans le script pour qu'il soit traité spécifiquement...
c'est à dire virer les dossiers superflus ? Il faudrait à ce moment là connaitre ta procédure pour les futurs dossiers à venir, facile de remplissage quoi.