Script batch incorrect :(

Fermé
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 - 11 mars 2023 à 15:38
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 - 28 avril 2023 à 09:45

Bonjour à tous,

Voici un petit fichier .bat qui m'expose la taille de 2 dossiers, (chacun des 2 dossiers comporte plusieurs sous dossiers et fichiers).
Jusque là, tout fonctionne, il m'affiche un 1er résultat en octets, et un second avec séparateurs de milliers.
C'est lorsque je cherche à calculer la différence de taille entre ces dossiers que ça ne va plus. Le résultat est toujours 0...
L'objectif :
* calculer la différence de taille dossier source/cible (ligne : set /a diff=size1-size2)
* afficher le résultat en octets de :taille fichier source - taille fichier cible
* si égalité (taille =0) , afficher message de type "Operation OK", sinon, afficher "Erreur"

@echo off
setlocal enabledelayedexpansion

set "target1=C:\Users\bibi\AppData\Roaming\Thunderbird\Profiles\rdwdst72.default-release"
if not defined target1 set "target1=%cd%"
set "size1=0"
for /f "tokens=3,5" %%a in ('
dir /a /s /w /-c "%target1%"
^| findstr /b /l /c:"  "
') do if "%%b"=="" set "size1=%%a"
echo; Taille source (C:) :         %size1% octets

set "target2=D:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird\rdwdst72.default-release"
if not defined target2 set "target2=%cd%"
set "size2=0"
for /f "tokens=3,5" %%a in ('
dir /a /s /w /-c "%target2%"
^| findstr /b /l /c:"  "
') do if "%%b"=="" set "size2=%%a"
echo; Taille destination (D:) :    %size2% octets

set /a diff=size1-size2


set "folder3=C:\Users\bibi\AppData\Roaming\Thunderbird\Profiles\rdwdst72.default-release"
set "folder4=D:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird\rdwdst72.default-release

set "size3=0"
set "size4=0"

for /f "tokens=3" %%i in ('dir /s /a "%folder3%" ^| findstr /i "fichier(s)"') do set size3=%%i
for /f "tokens=3" %%i in ('dir /s /a "%folder4%" ^| findstr /i "fichier(s)"') do set size4=%%i

echo Taille du dossier source : %size3% octets
echo Taille du dossier cible  : %size4% octets
echo Difference : %diff% octets

if %diff% EQU 0 (
  echo Operation OK
) else (
  echo Erreur
)

pause

Et voici le retour :

 Taille source (C:) :         8965660753 octets
 Taille destination (D:) :    8965506493 octets
Taille du dossier source : 8 965 660 753 octets
Taille du dossier cible  : 8 965 506 493 octets
Difference : 0 octets
Operation OK
Appuyez sur une touche pour continuer..

Ou peut être mon erreur ?
Je n'y connais rien en script batch et ne pourrai le dire, n'ayant fait qu'accumuler des lignes de commmande piochées à droite et à gauche..

A voir également:

101 réponses

brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
6 avril 2023 à 22:42

Et si on veut continuer à utiliser le script Thunderbird seul, il faut modifier les variables de destination et supprimer heures et minutes:

 

@echo off
MD %~dp0_temp

:DATE
FOR /F "usebackq" %%i IN (`PowerShell $date ^= Get-Date^; $date ^= $date^; $date.ToString^('ddMMyyyy'^)`) DO SET destinit=%%i

DIR /B %Appdata%\Thunderbird\Profiles\ >> %~dp0_temp\_thunder.txt
FOR /F %%v IN ('FINDSTR "release" %~dp0_temp\_thunder.txt') DO SET nomthunder=%%v
SET "orig=%AppData%\Thunderbird\Profiles\%nomthunder%"
SET "dest=E:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird"

echo:
ECHO ^[104;93mSAUVEGARDE THUNDERBIRD[0m
echo:

IF NOT EXIST %dest%\%destinit% GOTO VIERGE
GOTO SIZEMAILDEBUT

:VIERGE
MD %dest%\%destinit%

:SIZEMAILDEBUT
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigdebut.txt
XXCOPY %dest%\%destinit%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestdebut.txt
XXCOPY %orig%\Mail %dest%\%destinit%\Mail /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildiffdebut.txt
FOR /F "tokens=1,2 delims==" %%g IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigdebut=%%h
FOR /F "tokens=1,2 delims==" %%i IN ('FINDSTR "Total" %~dp0_temp\_Maildestdebut.txt') DO SET sizemaildestdebut=%%j
FOR /F "tokens=1,2 delims==" %%k IN ('FINDSTR "Total" %~dp0_temp\_Maildiffdebut.txt') DO SET sizemaildiffdebut=%%l

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestdebut% octets
set diff1maildebut=%sizemaildiffdebut:~1%
set diff2maildebut=%diff1maildebut:~0,1%
IF %diff2maildebut% LSS 1 (
 echo ^[103;92mPas de nouveau mail: %sizemaildiffdebut% octets[0m & GOTO NOMAIL
) ELSE (
 echo ^[103;91mNouveaux Mails: %sizemaildiffdebut% octets[0m & GOTO CHOICEMAIL
)

:CHOICEMAIL
echo:
ECHO ^[93mSauvegarder les nouveaux mails?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYMAIL
IF %ERRORLEVEL% EQU 2 GOTO QUITMAIL

:CHOICEPROFIL
echo:
ECHO ^[93mSauvegarder le Profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYPROFIL
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:NOMAIL
echo:
echo ^[103;92mVoulez-vous afficher le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO END

:NOCOPY
echo:
echo ^[103;92mDifférence nulle: Synchronisation Profil inutile[0m
GOTO END

:QUIT
echo:
echo ^[103;91mAttention, Synchronisation Abandonnée![0m
DIR /b /s /a "%dest%\%destinit%" | findstr .>nul || (
  RD /S /Q %dest%\%destinit%
)
GOTO END

:COPYMAIL
echo:
echo ^[93mPatientez, Sauvegarde Mails en cours...%[0m
XXCOPY "%orig%\Mail" "%dest%\%destinit%\Mail" /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde Mails effectuée %destfin%[0m
echo:

:SIZEMAILFIN
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigfin.txt
XXCOPY %dest%\%destinit%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestfin.txt
XXCOPY "%orig%\Mail" "%dest%\%destinit%\Mail" /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildifffin.txt
FOR /F "tokens=1,2 delims==" %%G IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigfin=%%H
FOR /F "tokens=1,2 delims==" %%I IN ('FINDSTR "Total" %~dp0_temp\_Maildestfin.txt') DO SET sizemaildestfin=%%J
FOR /F "tokens=1,2 delims==" %%K IN ('FINDSTR "Total" %~dp0_temp\_Maildifffin.txt') DO SET sizemaildifffin=%%L

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestfin% octets
echo ^[32mDifférence       : %sizemaildifffin% octets[0m

:QUITMAIL
echo:
echo ^[103;92mVoulez-vous voir le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:SIZEPROFILDEBUT
CHCP 1252 >NUL
echo:
ECHO ^[104mTaille Profil:[0m
XXCOPY %orig% C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origdebut.txt
XXCOPY %dest%\%destinit% C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destdebut.txt
XXCOPY %orig% %dest%\%destinit% /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_diffdebut.txt
FOR /F "tokens=1,2 delims==" %%a IN ('FINDSTR "Total" %~dp0_temp\_origdebut.txt') DO SET sizeorigdebut=%%b
FOR /F "tokens=1,2 delims==" %%c IN ('FINDSTR "Total" %~dp0_temp\_destdebut.txt') DO SET sizedestdebut=%%d
FOR /F "tokens=1,2 delims==" %%e IN ('FINDSTR "Total" %~dp0_temp\_diffdebut.txt') DO SET sizediffdebut=%%f
echo Source           = %sizeorigdebut% octets
echo Sauvegarde       = %sizedestdebut% octets
set diff1debut=%sizediffdebut:~1%
set diff2debut=%diff1debut:~0,1%
CHCP 65001 >NUL
IF %diff2debut% LSS 1 (
 echo ^[103;92mDifférence       = %sizediffdebut% octets[0m & GOTO NOCOPY
) ELSE (
 echo ^[103;91mDifférence       = %sizediffdebut% octets[0m & GOTO CHOICEPROFIL
)

:COPYPROFIL
echo:
echo ^[93mPatientez, Sauvegarde en cours...%[0m
XXCOPY %orig% %dest%\%destinit% /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde effectuée %destfin%[0m
echo:

:SIZEPROFILFIN
CHCP 1252 >NUL
XXCOPY %orig% C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origfin.txt
XXCOPY %dest%\%destinit% C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destfin.txt
XXCOPY %orig% %dest%\%destinit% /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_difffin.txt
FOR /F "tokens=1,2 delims==" %%A IN ('FINDSTR "Total" %~dp0_temp\_origfin.txt') DO SET sizeorigfin=%%B
FOR /F "tokens=1,2 delims==" %%C IN ('FINDSTR "Total" %~dp0_temp\_destfin.txt') DO SET sizedestfin=%%D
FOR /F "tokens=1,2 delims==" %%E IN ('FINDSTR "Total" %~dp0_temp\_difffin.txt') DO SET sizedifffin=%%F

IF %destinit%==%destfin% GOTO :DISPLAY
MOVE %dest%\%destinit% %dest%\%destfin% >NUL

:DISPLAY
CHCP 65001 >NUL
ECHO ^[104mTaille finale:[0m
echo Source     = %sizeorigfin% octets
echo Sauvegarde = %sizedestfin% octets
echo ^[103;92mDifférence = %sizedifffin% octets[0m
GOTO END

:END
echo:
pause
RD /S /Q %~dp0_temp
0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
11 avril 2023 à 19:56

Bonsoir Brucine.

Petite interruption Pascale de nos échanges..

Merci pour ces 2 nouveaux scripts.

Le script SAUVEGARDE FIREFOX ET THUNDERBIRD fonctionne impeccable.
Pour Thunderbird (et Firefox), Il ne pose qu'une question, sans annoncer les différences avant/après, mais il fait très bien le travail (j'ai tout vérifié)

Le script SAUVEGARDE THUNDERBIRD ne repère pas qu'un dossier de svg est déja présent dans D:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird, dossier nommé "11042023" en l'occurence, m'indique
Taille Mails:
Mails Source     =  4 213 726 425 octets
Mails Sauvegarde =  0 octets
Nouveaux Mails:  4 213 726 425 octets
mais si je répond oui à "Voulez-vous voir le reste du profil?", il répond :
Taille Profil:
Source           =  9 096 539 413 octets
Sauvegarde       =  9 096 539 413 octets
Différence       =  9 096 539 413 octets
ce qui est exact, pour source et Sauvegarde, mais pas pour Différence...
J'ai pourtant modifié "dest=D:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird"

Aucune importance car celui qui fonctionnait très bien est celui-ci, qui repère bien la sauvegarde précédente

@echo off
set z=0
MD %~dp0_temp

echo %time% > %~dp0_temp\time.txt
FOR /F %%q IN ('type "%~dp0_temp\time.txt"') DO SET heure=%%q
set time1=%heure:~0,2%
set time11=%heure:~0,1%
set time12=%heure:~1,1%
IF %time12%==: (
 GOTO AM
 ) ELSE (
 GOTO TIME
)
:AM
set time1=%z%%time11%
GOTO TIME

:TIME
set time2=%time:~3,2%
set date1=%date:~0,2%
set date2=%date:~3,2%
set date3=%date:~6,4%

DIR /B %Appdata%\Thunderbird\Profiles\ >> %~dp0_temp\_thunder.txt
FOR /F %%v IN ('FINDSTR "release" %~dp0_temp\_thunder.txt') DO SET nomthunder=%%v
SET "orig=%AppData%\Thunderbird\Profiles\%nomthunder%"
SET "dest=D:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird"
SET "destfin=%date1%%date2%%date3%_%time1%h%time2%"

echo:
ECHO ^[104;93mSAUVEGARDE THUNDERBIRD[0m
echo:

IF NOT EXIST "%dest%\**_**h**" GOTO VIERGE
FOR /F %%p IN ('DIR /B "%dest%\**_**h**"') DO SET destinit=%%p
GOTO SIZEMAILDEBUT

:VIERGE
SET destinit=%date1%%date2%%date3%_%time1%h%time2%
MD %dest%\%destinit%
GOTO SIZEMAILDEBUT

:SIZEMAILDEBUT
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigdebut.txt
XXCOPY %dest%\%destinit%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestdebut.txt
XXCOPY %orig%\Mail %dest%\%destinit%\Mail /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildiffdebut.txt
FOR /F "tokens=1,2 delims==" %%g IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigdebut=%%h
FOR /F "tokens=1,2 delims==" %%i IN ('FINDSTR "Total" %~dp0_temp\_Maildestdebut.txt') DO SET sizemaildestdebut=%%j
FOR /F "tokens=1,2 delims==" %%k IN ('FINDSTR "Total" %~dp0_temp\_Maildiffdebut.txt') DO SET sizemaildiffdebut=%%l

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestdebut% octets
set diff1maildebut=%sizemaildiffdebut:~1%
set diff2maildebut=%diff1maildebut:~0,1%
IF %diff2maildebut% LSS 1 (
 echo ^[103;92mPas de nouveau mail: %sizemaildiffdebut% octets[0m & GOTO NOMAIL
) ELSE (
 echo ^[103;91mNouveaux Mails: %sizemaildiffdebut% octets[0m & GOTO CHOICEMAIL
)

:CHOICEMAIL
echo:
ECHO ^[93mSauvegarder les nouveaux mails?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYMAIL
IF %ERRORLEVEL% EQU 2 GOTO QUITMAIL

:CHOICEPROFIL
echo:
ECHO ^[93mSauvegarder le Profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYPROFIL
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:NOMAIL
echo:
echo ^[103;92mVoulez-vous afficher le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO END

:NOCOPY
echo:
echo ^[103;92mDifférence nulle: Synchronisation Profil inutile[0m
GOTO END

:QUIT
echo:
echo ^[103;91mAttention, Synchronisation Abandonnée![0m
DIR /b /s /a "%dest%\%destinit%" | findstr .>nul || (
  RD /S /Q %dest%\%destinit%
)
GOTO END

:COPYMAIL
echo:
echo ^[93mPatientez, Sauvegarde Mails en cours...%[0m
XXCOPY "%orig%\Mail" "%dest%\%destinit%\Mail" /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde Mails effectuée %destfin%[0m
echo:

:SIZEMAILFIN
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigfin.txt
XXCOPY %dest%\%destinit%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestfin.txt
XXCOPY "%orig%\Mail" "%dest%\%destinit%\Mail" /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildifffin.txt
FOR /F "tokens=1,2 delims==" %%G IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigfin=%%H
FOR /F "tokens=1,2 delims==" %%I IN ('FINDSTR "Total" %~dp0_temp\_Maildestfin.txt') DO SET sizemaildestfin=%%J
FOR /F "tokens=1,2 delims==" %%K IN ('FINDSTR "Total" %~dp0_temp\_Maildifffin.txt') DO SET sizemaildifffin=%%L

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestfin% octets
echo ^[32mDifférence       : %sizemaildifffin% octets[0m

:QUITMAIL
echo:
echo ^[103;92mVoulez-vous voir le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:SIZEPROFILDEBUT
CHCP 1252 >NUL
echo:
ECHO ^[104mTaille Profil:[0m
XXCOPY %orig% C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origdebut.txt
XXCOPY %dest%\%destinit% C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destdebut.txt
XXCOPY %orig% %dest%\%destinit% /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_diffdebut.txt
FOR /F "tokens=1,2 delims==" %%a IN ('FINDSTR "Total" %~dp0_temp\_origdebut.txt') DO SET sizeorigdebut=%%b
FOR /F "tokens=1,2 delims==" %%c IN ('FINDSTR "Total" %~dp0_temp\_destdebut.txt') DO SET sizedestdebut=%%d
FOR /F "tokens=1,2 delims==" %%e IN ('FINDSTR "Total" %~dp0_temp\_diffdebut.txt') DO SET sizediffdebut=%%f
echo Source           = %sizeorigdebut% octets
echo Sauvegarde       = %sizedestdebut% octets
set diff1debut=%sizediffdebut:~1%
set diff2debut=%diff1debut:~0,1%
CHCP 65001 >NUL
IF %diff2debut% LSS 1 (
 echo ^[103;92mDifférence       = %sizediffdebut% octets[0m & GOTO NOCOPY
) ELSE (
 echo ^[103;91mDifférence       = %sizediffdebut% octets[0m & GOTO CHOICEPROFIL
)

:COPYPROFIL
echo:
echo ^[93mPatientez, Sauvegarde en cours...%[0m
XXCOPY %orig% %dest%\%destinit% /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde effectuée %destfin%[0m
echo:

:SIZEPROFILFIN
CHCP 1252 >NUL
XXCOPY %orig% C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origfin.txt
XXCOPY %dest%\%destinit% C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destfin.txt
XXCOPY %orig% %dest%\%destinit% /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_difffin.txt
FOR /F "tokens=1,2 delims==" %%A IN ('FINDSTR "Total" %~dp0_temp\_origfin.txt') DO SET sizeorigfin=%%B
FOR /F "tokens=1,2 delims==" %%C IN ('FINDSTR "Total" %~dp0_temp\_destfin.txt') DO SET sizedestfin=%%D
FOR /F "tokens=1,2 delims==" %%E IN ('FINDSTR "Total" %~dp0_temp\_difffin.txt') DO SET sizedifffin=%%F

IF %destinit%==%destfin% GOTO :DISPLAY
MOVE %dest%\%destinit% %dest%\%destfin% >NUL

:DISPLAY
CHCP 65001 >NUL
ECHO ^[104mTaille finale:[0m
echo Source     = %sizeorigfin% octets
echo Sauvegarde = %sizedestfin% octets
echo ^[103;92mDifférence = %sizedifffin% octets[0m
GOTO END

:END
echo:
pause
RD /S /Q %~dp0_temp

il s'agit de l'avant dernier script que tu as fait pout thunderbird.

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
11 avril 2023 à 21:08

Il doit y avoir un bug pour les variables en cas de 2 exécutions le même jour (ou de l'exécution du script complet et du script Thunderbird seul, ce qui revient au même); je teste demain.

J'ai fait exprès de virer les heures, sans quoi il aurait fallu en toute logique aussi en mettre pour Firefox (pas pour les mails mais par exemple pour les marque-pages), ce qui aurait alourdi le script pour pas grand-chose.

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891 > brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024
11 avril 2023 à 21:41

Je me suis apparemment mélangé les pinceaux dans :SIZEMAILDEBUT du script Thunderbird seul dans les variables et le chemin au niveau nomthunder de :
 

XXCOPY %orig%\Mail %dest%\%OldDate%\%nomthunder%\Mail /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildiffdebut.txt

Vérifie dans le script que tu as utilisé, une fois de mémoire replacé le signe % de droite à sa place, le résultat est cohérent chez moi (exécution d'une fois le script complet avec différences puis de 2 fois consécutives le script Thunderbird seul, en ayant la première fois viré exprès des fichiers de la sauvegarde)

 

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
13 avril 2023 à 11:45

Ligne modifiée, il ne repère toujours pas qu'il existe un dossier de svg antérieur "11042023" de 9 096 539 413 octets...

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
13 avril 2023 à 12:33

Il s'agit bien du script Thunderbird seul, pas du Thunderbird-Firefox que tu aurais bricolé?

J'ai continué hier dans la défonce du consommateur et ta pratique ceinture-bretelles-harnais: on verra ça après correction du problème présent, j'ai modifié le script pour inclure un fichier de Log daté dans la destination.

La moralité (on y reviendra) est que sauf syntaxe d'exclusion délicate à réaliser (j'ai trouvé un contournement), l'existence d'un fichier "intrus" (en l'espèce le fichier Log à la racine de Mails_Thunderbird, et peut-être plus généralement celle d'un dossier dans la destination dont le nom n'obéirait pas à jjmmaaaa) plante la sauvegarde de la manière observée.

L'erreur est facile à mettre en évidence en consultant le fichier _Maildestdebut.txt dans le dossier _Temp avant répondre O ou N à quoi que ce soit:

The source directory (E:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird\Log.txt\tekmidnv.default-release) does not exist.

Je n'ai alors pas de mesure de la destination initiale.

Si donc y existe un tel fichier ou dossier qui n'a rien à y faire, tu le vires et tu recommences; sinon, mets ton script en ligne pour que je repère l'erreur de syntaxe que tu aurais commise (chez moi, testé à nouveau à l'instant en présence de 2 dossiers 07042023 et 11042023, ça marche très bien à cela près qu'il faudra que je revoies la suppression des anciens scripts, ça m'a conservé le premier et viré le deuxième; si c'était selon les dates que tu as conservées la nature du souci, dis-moi lesquelles tu avais et fais le test en vidant entièrement Mails_Thunderbird puis en y créant 3 dossiers bidons que tu appelles 10042023, 11042023 et 12042023 dans lesquels tu copies aussi les 2 ou 3 mêmes fichiers bidons.

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891 > brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024
13 avril 2023 à 15:12

Je suis perturbé, aujourd'hui, seul le script mixte Thunderbird-Firefox fait le ménage des 3 dernières sauvegardes sauf si tu l'as adapté au script Thunderbird seul, restant 2 hypothèses, l'erreur de modification que tu aurais faite dans le script (à joindre) ou le fichier ou dossier "intrus".

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
13 avril 2023 à 15:13

Non, non, il s'agit bien du dernier script que tu as réalisé, sur lequel j'ai modifié E: en D:, ajouté les "carrés vides verticaux" ou nécessaire, et modifié la ligne xxcopie indiquée dernièrement :

@echo off
MD %~dp0_temp

:DATE
FOR /F "usebackq" %%i IN (`PowerShell $date ^= Get-Date^; $date ^= $date^; $date.ToString^('ddMMyyyy'^)`) DO SET destinit=%%i

DIR /B %Appdata%\Thunderbird\Profiles\ >> %~dp0_temp\_thunder.txt
FOR /F %%v IN ('FINDSTR "release" %~dp0_temp\_thunder.txt') DO SET nomthunder=%%v
SET "orig=%AppData%\Thunderbird\Profiles\%nomthunder%"
SET "dest=D:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird"

echo:
ECHO ^[104;93mSAUVEGARDE THUNDERBIRD[0m
echo:

IF NOT EXIST %dest%\%destinit% GOTO VIERGE
GOTO SIZEMAILDEBUT

:VIERGE
MD %dest%\%destinit%

:SIZEMAILDEBUT
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigdebut.txt
XXCOPY %dest%\%destinit%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestdebut.txt
XXCOPY %orig%\Mail %dest%\%OldDate%\%nomthunder%\Mail /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildiffdebut.txt
FOR /F "tokens=1,2 delims==" %%g IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigdebut=%%h
FOR /F "tokens=1,2 delims==" %%i IN ('FINDSTR "Total" %~dp0_temp\_Maildestdebut.txt') DO SET sizemaildestdebut=%%j
FOR /F "tokens=1,2 delims==" %%k IN ('FINDSTR "Total" %~dp0_temp\_Maildiffdebut.txt') DO SET sizemaildiffdebut=%%l

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestdebut% octets
set diff1maildebut=%sizemaildiffdebut:~1%
set diff2maildebut=%diff1maildebut:~0,1%
IF %diff2maildebut% LSS 1 (
 echo ^[103;92mPas de nouveau mail: %sizemaildiffdebut% octets[0m & GOTO NOMAIL
) ELSE (
 echo ^[103;91mNouveaux Mails: %sizemaildiffdebut% octets[0m & GOTO CHOICEMAIL
)

:CHOICEMAIL
echo:
ECHO ^[93mSauvegarder les nouveaux mails?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYMAIL
IF %ERRORLEVEL% EQU 2 GOTO QUITMAIL

:CHOICEPROFIL
echo:
ECHO ^[93mSauvegarder le Profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYPROFIL
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:NOMAIL
echo:
echo ^[103;92mVoulez-vous afficher le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO END

:NOCOPY
echo:
echo ^[103;92mDifférence nulle: Synchronisation Profil inutile[0m
GOTO END

:QUIT
echo:
echo ^[103;91mAttention, Synchronisation Abandonnée![0m
DIR /b /s /a "%dest%\%destinit%" | findstr .>nul || (
  RD /S /Q %dest%\%destinit%
)
GOTO END

:COPYMAIL
echo:
echo ^[93mPatientez, Sauvegarde Mails en cours...%[0m
XXCOPY "%orig%\Mail" "%dest%\%destinit%\Mail" /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde Mails effectuée %destfin%[0m
echo:

:SIZEMAILFIN
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigfin.txt
XXCOPY %dest%\%destinit%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestfin.txt
XXCOPY "%orig%\Mail" "%dest%\%destinit%\Mail" /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildifffin.txt
FOR /F "tokens=1,2 delims==" %%G IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigfin=%%H
FOR /F "tokens=1,2 delims==" %%I IN ('FINDSTR "Total" %~dp0_temp\_Maildestfin.txt') DO SET sizemaildestfin=%%J
FOR /F "tokens=1,2 delims==" %%K IN ('FINDSTR "Total" %~dp0_temp\_Maildifffin.txt') DO SET sizemaildifffin=%%L

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestfin% octets
echo ^[32mDifférence       : %sizemaildifffin% octets[0m

:QUITMAIL
echo:
echo ^[103;92mVoulez-vous voir le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:SIZEPROFILDEBUT
CHCP 1252 >NUL
echo:
ECHO ^[104mTaille Profil:[0m
XXCOPY %orig% C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origdebut.txt
XXCOPY %dest%\%destinit% C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destdebut.txt
XXCOPY %orig% %dest%\%destinit% /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_diffdebut.txt
FOR /F "tokens=1,2 delims==" %%a IN ('FINDSTR "Total" %~dp0_temp\_origdebut.txt') DO SET sizeorigdebut=%%b
FOR /F "tokens=1,2 delims==" %%c IN ('FINDSTR "Total" %~dp0_temp\_destdebut.txt') DO SET sizedestdebut=%%d
FOR /F "tokens=1,2 delims==" %%e IN ('FINDSTR "Total" %~dp0_temp\_diffdebut.txt') DO SET sizediffdebut=%%f
echo Source           = %sizeorigdebut% octets
echo Sauvegarde       = %sizedestdebut% octets
set diff1debut=%sizediffdebut:~1%
set diff2debut=%diff1debut:~0,1%
CHCP 65001 >NUL
IF %diff2debut% LSS 1 (
 echo ^[103;92mDifférence       = %sizediffdebut% octets[0m & GOTO NOCOPY
) ELSE (
 echo ^[103;91mDifférence       = %sizediffdebut% octets[0m & GOTO CHOICEPROFIL
)

:COPYPROFIL
echo:
echo ^[93mPatientez, Sauvegarde en cours...%[0m
XXCOPY %orig% %dest%\%destinit% /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde effectuée %destfin%[0m
echo:

:SIZEPROFILFIN
CHCP 1252 >NUL
XXCOPY %orig% C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origfin.txt
XXCOPY %dest%\%destinit% C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destfin.txt
XXCOPY %orig% %dest%\%destinit% /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_difffin.txt
FOR /F "tokens=1,2 delims==" %%A IN ('FINDSTR "Total" %~dp0_temp\_origfin.txt') DO SET sizeorigfin=%%B
FOR /F "tokens=1,2 delims==" %%C IN ('FINDSTR "Total" %~dp0_temp\_destfin.txt') DO SET sizedestfin=%%D
FOR /F "tokens=1,2 delims==" %%E IN ('FINDSTR "Total" %~dp0_temp\_difffin.txt') DO SET sizedifffin=%%F

IF %destinit%==%destfin% GOTO :DISPLAY
MOVE %dest%\%destinit% %dest%\%destfin% >NUL

:DISPLAY
CHCP 65001 >NUL
ECHO ^[104mTaille finale:[0m
echo Source     = %sizeorigfin% octets
echo Sauvegarde = %sizedestfin% octets
echo ^[103;92mDifférence = %sizedifffin% octets[0m
GOTO END

:END
echo:
pause
RD /S /Q %~dp0_temp
0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
13 avril 2023 à 15:46

Tu as mélangé 2 versions du script et tu n'utilises pas la dernière: tu es planté parce que ligne 26 %OldDate% (correspondant à la date de la sauvegarde avant synchronisation) n'est pas défini et que cette version du script utilisait un subterfuge pour la déterminer et la comparer à la date du jour que tu n'as pas reproduit.

Plutôt que de tout corriger pour réintroduire la variable en question et sa comparaison (je n'ai plus l'archive), utilises la dernière (avant introduction d'un Log si tu le souhaites et une fois testé); corriges la lettre de lecteur E vers D.

Pour récupérer le caractère d'échappement dans une variable que j'appelle %ESC%:

FOR /F "delims=#" %%E IN ('"prompt #$E# & FOR %%E IN (1) DO REM"') DO SET "ESC=%%E"
 

@echo off
MD %~dp0_temp

:DATE
FOR /F "usebackq" %%i IN (`PowerShell $date ^= Get-Date^; $date ^= $date^; $date.ToString^('ddMMyyyy'^)`) DO SET NewDate=%%i

DIR /B %Appdata%\Thunderbird\Profiles\ >> %~dp0_temp\_thunder.txt
FOR /F %%v IN ('FINDSTR "release" %~dp0_temp\_thunder.txt') DO SET nomthunder=%%v
SET "orig=%AppData%\Thunderbird\Profiles\%nomthunder%"
SET "dest=E:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird"

echo:
ECHO ^[104;93mSAUVEGARDE THUNDERBIRD[0m
echo:

FOR /F %%a IN ('powershell.exe -Command "(Get-ChildItem "%dest%" | Measure-Object).Count"') DO SET number=%%a
IF %number% EQU 0 GOTO VIERGE
FOR /F %%p IN ('DIR /B "%dest%\**********"') DO SET OldDate=%%p
GOTO SIZEMAILDEBUT

:VIERGE
SET OldDate=%NewDate%
MD %dest%\%OldDate%

:SIZEMAILDEBUT
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigdebut.txt
XXCOPY %dest%\%OldDate%\%nomthunder%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestdebut.txt
XXCOPY %orig%\Mail %dest%\%OldDate%\%nomthunder%\Mail /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildiffdebut.txt
FOR /F "tokens=1,2 delims==" %%g IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigdebut=%%h
FOR /F "tokens=1,2 delims==" %%i IN ('FINDSTR "Total" %~dp0_temp\_Maildestdebut.txt') DO SET sizemaildestdebut=%%j
FOR /F "tokens=1,2 delims==" %%k IN ('FINDSTR "Total" %~dp0_temp\_Maildiffdebut.txt') DO SET sizemaildiffdebut=%%l

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestdebut% octets
set diff1maildebut=%sizemaildiffdebut:~1%
set diff2maildebut=%diff1maildebut:~0,1%
IF %diff2maildebut% LSS 1 (
 echo ^[103;92mPas de nouveau mail: %sizemaildiffdebut% octets[0m & GOTO NOMAIL
) ELSE (
 echo ^[103;91mNouveaux Mails: %sizemaildiffdebut% octets[0m & GOTO CHOICEMAIL
)

:CHOICEMAIL
echo:
ECHO ^[93mSauvegarder les nouveaux mails?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYMAIL
IF %ERRORLEVEL% EQU 2 GOTO QUITMAIL

:CHOICEPROFIL
echo:
ECHO ^[93mSauvegarder le Profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYPROFIL
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:NOMAIL
echo:
echo ^[103;92mVoulez-vous afficher le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO END

:NOCOPY
echo:
echo ^[103;92mDifférence nulle: Synchronisation Profil inutile[0m
GOTO END

:QUIT
echo:
echo ^[103;91mAttention, Synchronisation Abandonnée![0m
DIR /b /s /a "%dest%\%OldDate%" | findstr .>nul || (
  RD /S /Q %dest%\%OldDate%
)
GOTO END

:COPYMAIL
echo:
echo ^[93mPatientez, Sauvegarde Mails en cours...%[0m
XXCOPY "%orig%\Mail" "%dest%\%OldDate%\%nomthunder%\Mail" /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde Mails effectuée %destfin%[0m

echo:

:SIZEMAILFIN
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigfin.txt
XXCOPY %dest%\%OldDate%\%nomthunder%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestfin.txt
XXCOPY "%orig%\Mail" "%dest%\%OldDate%\%nomthunder%\Mail" /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildifffin.txt
FOR /F "tokens=1,2 delims==" %%G IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigfin=%%H
FOR /F "tokens=1,2 delims==" %%I IN ('FINDSTR "Total" %~dp0_temp\_Maildestfin.txt') DO SET sizemaildestfin=%%J
FOR /F "tokens=1,2 delims==" %%K IN ('FINDSTR "Total" %~dp0_temp\_Maildifffin.txt') DO SET sizemaildifffin=%%L

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestfin% octets
echo ^[32mDifférence       : %sizemaildifffin% octets[0m

:QUITMAIL
echo:
echo ^[103;92mVoulez-vous voir le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:SIZEPROFILDEBUT
CHCP 1252 >NUL
echo:
ECHO ^[104mTaille Profil:[0m
XXCOPY %orig% C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origdebut.txt
XXCOPY %dest%\%OldDate%\%nomthunder% C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destdebut.txt
XXCOPY %orig% %dest%\%OldDate%\%nomthunder% /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_diffdebut.txt
FOR /F "tokens=1,2 delims==" %%a IN ('FINDSTR "Total" %~dp0_temp\_origdebut.txt') DO SET sizeorigdebut=%%b
FOR /F "tokens=1,2 delims==" %%c IN ('FINDSTR "Total" %~dp0_temp\_destdebut.txt') DO SET sizedestdebut=%%d
FOR /F "tokens=1,2 delims==" %%e IN ('FINDSTR "Total" %~dp0_temp\_diffdebut.txt') DO SET sizediffdebut=%%f
echo Source           = %sizeorigdebut% octets
echo Sauvegarde       = %sizedestdebut% octets
set diff1debut=%sizediffdebut:~1%
set diff2debut=%diff1debut:~0,1%
CHCP 65001 >NUL
IF %diff2debut% LSS 1 (
 echo ^[103;92mDifférence       = %sizediffdebut% octets[0m & GOTO NOCOPY
) ELSE (
 echo ^[103;91mDifférence       = %sizediffdebut% octets[0m & GOTO CHOICEPROFIL
)

:COPYPROFIL
echo:
echo ^[93mPatientez, Sauvegarde en cours...%[0m
XXCOPY %orig% %dest%\%OldDate%\%nomthunder% /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde effectuée %NewDate%[0m
echo:

:SIZEPROFILFIN
CHCP 1252 >NUL
XXCOPY %orig% C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origfin.txt
XXCOPY %dest%\%OldDate%\%nomthunder% C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destfin.txt
XXCOPY %orig% %dest%\%OldDate%\%nomthunder% /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_difffin.txt
FOR /F "tokens=1,2 delims==" %%A IN ('FINDSTR "Total" %~dp0_temp\_origfin.txt') DO SET sizeorigfin=%%B
FOR /F "tokens=1,2 delims==" %%C IN ('FINDSTR "Total" %~dp0_temp\_destfin.txt') DO SET sizedestfin=%%D
FOR /F "tokens=1,2 delims==" %%E IN ('FINDSTR "Total" %~dp0_temp\_difffin.txt') DO SET sizedifffin=%%F

IF %NewDate%==%OldDate% GOTO :DISPLAY
MOVE %dest%\%OldDate% %dest%\%NewDate% >NUL

:DISPLAY
CHCP 65001 >NUL
ECHO ^[104mTaille finale:[0m
echo Source     = %sizeorigfin% octets
echo Sauvegarde = %sizedestfin% octets
echo ^[103;92mDifférence = %sizedifffin% octets[0m
GOTO END

:END
echo:
pause
RD /S /Q %~dp0_temp
0

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

Posez votre question
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
13 avril 2023 à 15:41

Ce n'est pas grave. Ne te casse pas la tête. Ton script recopié en 157 marche très bien pour thunderbird, et tu as poussé si loin tes recherches que j'avoue être plus que gâté, encore merci.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
13 avril 2023 à 16:22

A n'y rien comprendre.....Ton dernier script, sans modifs à part E: en D: et nos "carrés" donne, lorsque je le laisse dossier de svg antérieur "11042023" de 9 096 539 413 octets dans D:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird

Puis je supprime ce dernier dossier "11042023" , et relance le batch, en répondant oui à chaque demande

....

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
13 avril 2023 à 16:39

Comme je te l'ai dit, marche parfaitement chez moi, rien de différent à part la lettre de lecteur et bien sûr le nom du profil mais qui n'est pas appelé par son nom.

J'avais historiquement mis la date au format jj-mm-aaaa: enlèves 2 des astérisques ligne 18 au cas où, introduis en-dessous 2 lignes que tu enlèveras ensuite

echo %OldDate%
pause

dis ce que raconte _Maildestdebut.txt dans le dossier _temp, supprimes ce dossier avant de relancer le script si interrompu avant la fin, tu n'as pas de fichier/dossier intrus dans la destination?

 

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
13 avril 2023 à 16:48

Même fenêtre que la dernière postée, à part

Vérif.bat
Appuyez sur une touche pour continuer...

intercalé entre SAUVEGARDE THUNDERBIRD et Taile Mails:

_Maildestdebut.txt raconte :

The source directory (D:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird\Vérif.bat\rdwdst72.default-release) does not exist.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
13 avril 2023 à 16:50

pas de fichier/dossier intrus dans la destination

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
13 avril 2023 à 17:03

Ben si: le fichier Vérif.bat

S'il est nécessaire dans le dossier de sauvegarde (pourquoi ?) il faut faire comme je l'ai fait avec le fichier Log dont je t'ai parlé, le déplacer hors de la destination avant les lignes XXCOPY et l'y remettre après, tu dis.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
13 avril 2023 à 19:55

Mais oui, bien sur ! Je ne t'avais pas averti que le dossier Mails_thunderbird contenait d'autres fichiers, des bat et des rar et un txt

Maintenant tout fonctionne impeccable, et il est capable de me dire, après avoir fontionné auparavant, que la svg est inutile quand trouve une égalité de taille entre source et destination... Merci

Il faudra que je teste demain quand le dossier créé "13042023" ne sera plus "d'actualité". Je ne pensais pas que ce nouveau script avait besoin de place "libre" pour fonctionner, ce qui n'était pas le cas avec le script posté en 157 et qui ne tenait pas compte des autres fichiers présents dans le répertoire.

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
13 avril 2023 à 23:16

Ce n'est pas une question de place libre, c'est la syntaxe de copie ligne 28 qui mesure la taille de la destination prise comme source en la comparant à un dossier virtuel n'existant pas et donc vide; elle plante s'il y a des fichiers excédentaires à la racine du dossier mesuré (\Mail) qu'il faut alors exclure (je ne peux pas me servir d'un commutateur permettant de copier tous les dossiers et fichiers sous \Mail, la taille serait alors fausse, et il n'y a pas de syntaxe simple XXCOPY permettant de ne sélectionner que les sous-dossiers).

Je n'ai pas vraiment réfléchi à des critères d'exclusion XXCOPY complexes; puisqu'on est dans le virtuel, peut-être la syntaxe serait acceptée en inversant source et destination, la différence de taille est la même.

Le cas de figure n'est pas très logique (comme il ne l'est pas non plus que de tels fichiers qui n'ont rien à voir avec la sauvegarde Thunderbird s'y trouvent...); le problème est le même si je veux avoir un Log horodaté (qui lui serait plus logique) dans ce dossier

La pirouette est simple à trouver si ces fichiers ne comportent que 2 ou 3 extensions (.txt, .bat...), pas exclue mais moins si c'est le Bazar de l'Hôtel de Ville.

Je tiens si tu le souhaites à ta disposition encore une nouvelle version: elle garde les 3 sauvegardes les plus récentes quelle qu'en soit la date et vire les autres; elle crée un fichier Log en le déplaçant par MOVE avant XXCOPY en dehors du dossier de destination et en l'y replaçant après.

Le problème n'existe alors plus, c'est exactement la même chose si, au lieu de déplacer Log.txt je déplace Tartempion.bat.

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891 > brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024
14 avril 2023 à 12:12

Modification:

-enregistrement des 3 dernières sauvegardes indépendamment du jour.
-création d'un fichier de Log horodaté mis en exclusion de copie.
-création d'un critère d'exclusion des fichiers isolés à la racine de \Mails_thunderbird.

Les dossiers compressés (.zip dans mon exemple) sont considérés comme des fichiers mais les dossiers parasites à cette racine ne sont pas traités, il faudrait créer un deuxième masque d'exclusion (et une usine à gaz).
Soit on écrit comme je l'ai fait le nom de tous les fichiers à exclure séparés par un espace

ECHO Log.txt bon-cadeau.pdf swagger.zip > %~dp0_temp\Exclude.txt

soit on utilise un caractère générique (*.zip ensemble des fichiers .zip) mais on ne peut pas écrire *.txt (il y a des fichiers .txt légitimes dans le dossier Thunderbird).

Je ne connais pas non plus le sort des pièces jointes Thunderbird, sans incidence si elles sont dissimulées dans les fichiers msf, posant un problème d'exclusion si elles sont séparées du corps des messages (pour ne pas alourdir inutilement le logiciel et les retrouver facilement, la bonne pratique commande d'ailleurs de les enregistrer ailleurs et de les supprimer du logiciel de Mail).

 

@echo off
MD %~dp0_temp

:DATE
FOR /F "usebackq" %%i IN (`PowerShell $date ^= Get-Date^; $date ^= $date^; $date.ToString^('ddMMyyyy'^)`) DO SET OldDate=%%i
FOR /F "usebackq" %%j IN (`PowerShell $date ^= Get-Date^; $date ^= $date^; $date.ToString^('ddMMyyyy_HH:mm'^)`) DO SET LogDate=%%j

DIR /B %Appdata%\Thunderbird\Profiles\ >> %~dp0_temp\_thunderbird.txt
FOR /F %%w IN ('FINDSTR "release" %~dp0_temp\_thunderbird.txt') DO SET nomthunderbird=%%w
SET "orig=%AppData%\Thunderbird\Profiles\%nomthunderbird%"
SET "dest=E:\bibi\Pro\Documents\Sauvegardes_pro\Mails_thunderbird"
ECHO Log.txt bon-cadeau.pdf swagger.zip > %~dp0_temp\Exclude.txt

echo:
ECHO ^[104;93mSAUVEGARDE THUNDERBIRD[0m
echo:

FOR /F %%a IN ('powershell.exe -Command "(Get-ChildItem "%dest%" | Measure-Object).Count"') DO SET number=%%a
IF %number% EQU 0 GOTO VIERGE
GOTO SIZEMAILDEBUT

:VIERGE
MD %dest%\%OldDate%

:SIZEMAILDEBUT
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigdebut.txt
XXCOPY %dest%\%OldDate%\%nomthunderbird%\Mail/X%~dp0_temp\Exclude.txt C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestdebut.txt
XXCOPY %orig%\Mail %dest%\%OldDate%\%nomthunderbird%\Mail/X%~dp0_temp\Exclude.txt /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildiffdebut.txt
FOR /F "tokens=1,2 delims==" %%g IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigdebut=%%h
FOR /F "tokens=1,2 delims==" %%i IN ('FINDSTR "Total" %~dp0_temp\_Maildestdebut.txt') DO SET sizemaildestdebut=%%j
FOR /F "tokens=1,2 delims==" %%k IN ('FINDSTR "Total" %~dp0_temp\_Maildiffdebut.txt') DO SET sizemaildiffdebut=%%l

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestdebut% octets
set diff1maildebut=%sizemaildiffdebut:~1%
set diff2maildebut=%diff1maildebut:~0,1%
IF %diff2maildebut% LSS 1 (
 echo ^[103;92mPas de nouveau mail: %sizemaildiffdebut% octets[0m & GOTO NOMAIL
) ELSE (
 echo ^[103;91mNouveaux Mails: %sizemaildiffdebut% octets[0m & GOTO CHOICEMAIL
)

:CHOICEMAIL
echo:
ECHO ^[93mSauvegarder les nouveaux mails?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYMAIL
IF %ERRORLEVEL% EQU 2 GOTO QUITMAIL

:CHOICEPROFIL
echo:
ECHO ^[93mSauvegarder le Profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO COPYPROFIL
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:NOMAIL
echo:
echo ^[103;92mVoulez-vous afficher le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO END

:NOCOPY
echo:
echo ^[103;92mDifférence nulle: Synchronisation Profil inutile[0m
GOTO END

:QUIT
echo:
echo ^[103;91mAttention, Synchronisation Abandonnée![0m
DIR /b /s /a "%dest%\%OldDate%" | findstr .>nul || (
  RD /S /Q %dest%\%OldDate%
)
GOTO END

:COPYMAIL
echo:
echo ^[93mPatientez, Sauvegarde Mails en cours...%[0m
XXCOPY "%orig%\Mail" %dest%\%OldDate%\%nomthunderbird%\Mail/X%~dp0_temp\Exclude.txt /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde Mails effectuée %destfin%[0m
ECHO Sauvegarde Mails : %LogDate% %sizemaildiffdebut% octets>> %dest%\Log.txt

echo:

:SIZEMAILFIN
CHCP 1252 >NUL
XXCOPY %orig%\Mail C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Mailorigfin.txt
XXCOPY %dest%\%OldDate%\%nomthunderbird%\Mail/X%~dp0_temp\Exclude.txt C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildestfin.txt
XXCOPY "%orig%\Mail" %dest%\%OldDate%\%nomthunderbird%\Mail/X%~dp0_temp\Exclude.txt /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_Maildifffin.txt
FOR /F "tokens=1,2 delims==" %%G IN ('FINDSTR "Total" %~dp0_temp\_Mailorigdebut.txt') DO SET sizemailorigfin=%%H
FOR /F "tokens=1,2 delims==" %%I IN ('FINDSTR "Total" %~dp0_temp\_Maildestfin.txt') DO SET sizemaildestfin=%%J
FOR /F "tokens=1,2 delims==" %%K IN ('FINDSTR "Total" %~dp0_temp\_Maildifffin.txt') DO SET sizemaildifffin=%%L

CHCP 65001 >NUL
ECHO ^[104mTaille Mails:[0m
echo Mails Source     = %sizemailorigdebut% octets
echo Mails Sauvegarde = %sizemaildestfin% octets
echo ^[32mDifférence       : %sizemaildifffin% octets[0m

:QUITMAIL
echo:
echo ^[103;92mVoulez-vous voir le reste du profil?[0m
CHOICE /C ON
IF %ERRORLEVEL% EQU 1 GOTO SIZEPROFILDEBUT
IF %ERRORLEVEL% EQU 2 GOTO QUIT

:SIZEPROFILDEBUT
CHCP 1252 >NUL
echo:
ECHO ^[104mTaille Profil:[0m
XXCOPY %orig% C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origdebut.txt
XXCOPY %dest%\%OldDate%\%nomthunderbird%/X%~dp0_temp\Exclude.txt C:\_TEMPD /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destdebut.txt
XXCOPY %orig% %dest%\%OldDate%\%nomthunderbird%/X%~dp0_temp\Exclude.txt /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_diffdebut.txt
FOR /F "tokens=1,2 delims==" %%a IN ('FINDSTR "Total" %~dp0_temp\_origdebut.txt') DO SET sizeorigdebut=%%b
FOR /F "tokens=1,2 delims==" %%c IN ('FINDSTR "Total" %~dp0_temp\_destdebut.txt') DO SET sizedestdebut=%%d
FOR /F "tokens=1,2 delims==" %%e IN ('FINDSTR "Total" %~dp0_temp\_diffdebut.txt') DO SET sizediffdebut=%%f
echo Source           = %sizeorigdebut% octets
echo Sauvegarde       = %sizedestdebut% octets
set diff1debut=%sizediffdebut:~1%
set diff2debut=%diff1debut:~0,1%
CHCP 65001 >NUL
IF %diff2debut% LSS 1 (
 echo ^[103;92mDifférence       = %sizediffdebut% octets[0m & GOTO NOCOPY
) ELSE (
 echo ^[103;91mDifférence       = %sizediffdebut% octets[0m & GOTO CHOICEPROFIL
)

:COPYPROFIL
echo:
echo ^[93mPatientez, Sauvegarde en cours...%[0m
XXCOPY %orig% %dest%\%OldDate%\%nomthunderbird%/X%~dp0_temp\Exclude.txt /Q3 /CBQ /CLONE /YY >NUL
echo:
echo ^[32mSauvegarde effectuée %NewDate%[0m
ECHO Sauvegarde Profil: %LogDate% %sizediffdebut% octets>> %dest%\Log.txt
echo:

:SIZEPROFILFIN
CHCP 1252 >NUL
XXCOPY %orig% C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_origfin.txt
XXCOPY %dest%\%OldDate%\%nomthunderbird%/X%~dp0_temp\Exclude.txt C:\_TEMPF /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_destfin.txt
XXCOPY %orig% %dest%\%OldDate%\%nomthunderbird%/X%~dp0_temp\Exclude.txt /L /Q3 /CBQ /CLONE /YY >> %~dp0_temp\_difffin.txt
FOR /F "tokens=1,2 delims==" %%A IN ('FINDSTR "Total" %~dp0_temp\_origfin.txt') DO SET sizeorigfin=%%B
FOR /F "tokens=1,2 delims==" %%C IN ('FINDSTR "Total" %~dp0_temp\_destfin.txt') DO SET sizedestfin=%%D
FOR /F "tokens=1,2 delims==" %%E IN ('FINDSTR "Total" %~dp0_temp\_difffin.txt') DO SET sizedifffin=%%F

:DISPLAY
CHCP 65001 >NUL
ECHO ^[104mTaille finale:[0m
echo Source     = %sizeorigfin% octets
echo Sauvegarde = %sizedestfin% octets
echo ^[103;92mDifférence = %sizedifffin% octets[0m

:CLEANTHUNDERBIRD
FOR /F %%b IN ('powershell.exe -Command "(Get-ChildItem "%dest%" | Measure-Object).Count"') DO SET numbert=%%b
IF %numbert% LEQ 3 GOTO END
FOR /F "skip=3 delims=" %%b in ('dir "%dest%\" /B /O:-N /A:D') DO RD /S /Q "%dest%\%%b"

:END
echo:
pause
RD /S /Q %~dp0_temp
0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
14 avril 2023 à 20:19

Ca c'est "trop fort" comme dirait ma fille.

J'ai parfaitement compris la commande d'exclusion, et loin vouloir de faire de "Mails_thunderbird" la foire du trône de mes fichiers, ça me rend bien service d'y entreposer quelque .rar (qui d'ailleurs conteniennent tous les scripts que tu as conçu) et des .bat (je doute que thunderbird en fasse usage). Pour les mails, j'ai déja édité des fichiers mails et même les p.jointes de mails contenant des rar sont inclus dans ces fichiers, donc pas de souci.

Suis impatient de tester cette nouvelle mouture dans tous les sens, mais je dois m'absenter ce soir pour le weekend, donc partie remise à mon retour, et te souhaite 1 excellent weekend.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
19 avril 2023 à 10:50

Bonjour Brucine.

Enfin de retour d'un we à rallonge..

Ce dernier script fonctionne bien. Il n'a pas repéré le dossier "13042023" m'indiquant 0 pour "Mails svg", mais il a fait son travail. Peut être est-ce normal puisque plus de 3j nous sépare de la dernière sauvegarde... Quand on le relance après l'avoir fait fonctionner juste avant, il repère bien la même taille source/svg. Il laisse un "Log.txt", qui , édité donne Sauvegarde Mails : 19042023_10:42  4 225 926 743 octets
Sauvegarde Profil: 19042023_10:42  5 161 121 374 octets

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
19 avril 2023 à 22:42

Bonsoir,

Le comportement attendu dans cette nouvelle version est de ne comparer la destination existante qu'en cas de nouvelle sauvegarde le même jour; dans le cas contraire, elle laisse s'installer 3 versions datées même si elles ne sont pas consécutives (jours où on n'a rien fait) et, dès qu'est installée une quatrième totale vire la plus ancienne de sorte qu'il ne reste que les 3 dernières les plus récentes.

Le sens de la chose est de pallier une corruption du profil actif: si j'ai sauvegardé le jour J un profil déjà corrompu, j'ai les yeux pour pleurer tandis que là, je peux récupérer les jours précédents.

La contrepartie est bien sûr que chaque nouvelle journée fait l'objet d'une sauvegarde complète.

Le fichier Log va lui s'incrémenter à chaque nouvelle sauvegarde du jour ou d'un autre.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
20 avril 2023 à 11:32

C'est plus clair... Ca remplace efficacement les interminables vérifications de corruptions intégrées dans différents softs. Tout ça avec 8Ko d'instructions ! Excellent, merci !

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
20 avril 2023 à 12:49

Illustrons pas un cas extrême: je sauvegarde Thunderbird un soir sans l'ouvrir, je mène ma vie en soirée, quand je rouvre le lendemain je suis planté parce qu'il y a eu un bug, un virus, que sais-je; la corruption aura donc aussi affecté la sauvegarde, je n'ai sauf ransomware aucun moyen formel, logiciel ou pas, de la déceler que d'essayer de m'en servir.

C'est la raison pour laquelle il est prudent d'avoir, sur le mode des restaurations Windows, une sauvegarde plus ancienne dont je sais qu'elle fonctionnait.

La mesure de la taille sauvegarde et destination elle alourdit considérablement le script et n'est pas une mesure fiable, une telle différence ne rend pas compte d'une éventuelle corruption mais bon, tu l'as voulue, tu l'as eue...

Après la phase de test (je me suis servi pour cela de photos bidon placées aux endroits stratégiques Mail et Profils dans la source et/ou la destination, elles ne peuvent pas m'échapper quand je vérifie), je n'ai aucune raison de douter de la fiabilité de XXCOPY (ou ROBOCOPY) qui ne peuvent défaillir que du fait d'une erreur humaine dans les paramètres utilisés (et que je vais repérer dans les tests).

Le fichier de Log n'a dans ces conditions non plus pas d'importance dans sa taille, mais parce qu'il peut rassurer en attestant que telle tâche de sauvegarde a bien été menée à son terme.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
20 avril 2023 à 19:05

Cette précaution de svg en cascade est une très bonne idée, merci.

"...mais bon, tu l'as voulue, tu l'as eue..." Eh... eh ... en effet, j'ai bien été servi ! Merci !

J'ai eu de rares cas de ransomwares, mais m'en suis sorti indemne grâce eset nod32 à et des astuces trouvées sur le net (malekal). Beaucoup de temps passée, mais ils ne devaient pas être très méchants vu que je m'en suis sorti seul.

J'ai longtemps hésité à te parler d'un autre sujet, car tu sembles bien maitriser le dos et windows, et c'est pour moi une aubaine... Mais j'ai un souci récurent avec windows defender qui reprend ses "droits" une mise à jour sur 3, alors que "fusillé" plusieurs fois. Est ce que ça fait partie de tes compétences, et est-ce qu'on peut en parler ici, ou doit on ouvrir un nouveau sujet ?

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
20 avril 2023 à 19:06

Cette précaution de svg en cascade est une très bonne idée, merci.

"...mais bon, tu l'as voulue, tu l'as eue..." Eh... eh ... en effet, j'ai bien été servi ! Merci !

J'ai eu de rares cas de ransomwares, mais m'en suis sorti indemne grâce eset nod32 à et des astuces trouvées sur le net (malekal). Beaucoup de temps passée, mais ils ne devaient pas être très méchants vu que je m'en suis sorti seul.

J'ai longtemps hésité à te parler d'un autre sujet, car tu sembles bien maitriser le dos et windows, et c'est pour moi une aubaine... Mais j'ai un souci récurent avec windows defender qui reprend ses "droits" une mise à jour sur 3, alors que "fusillé" plusieurs fois. Est ce que ça fait partie de tes compétences, et est-ce qu'on peut en parler ici, ou doit on ouvrir un nouveau sujet ?

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
20 avril 2023 à 20:49

Il existe des scripts pour désactiver Windows Defender, pas toujours efficaces et délicats à manipuler.

Je lui reproche, puisqu'on parle de Batchs, de censurer via antivirus mes utilitaires Dos et mes scripts dans mon dos, qui plus est sans m'en demander la permission, et d'une manière plus générale d'être "la voix de son maître"; le volet pare-feu censure plus volontiers les communications entrantes que sortantes, je n'ai rien à cacher, mais c'est une question de principe: je ne vois pas pourquoi ma machine passerait son temps à mettre mes "statistiques", fussent-elles anonymes, en ligne, en consommant au passage des processus et une bande passante dont je ferais volontiers autre chose.

Ma deuxième idée de la chose, ce forum nous en est témoin tous les jours, est qu'il n'existe pas de bon antivirus ailleurs qu'entre la chaise et le clavier, mais il est impossible de désactiver totalement l'antivirus Windows Defender sans manipulation spécifique et, si j'utilise un produit tiers dont je désactive la composante antivirus, c'est le serpent qui se mord la queue, Windows Defender reprend ses droits; je suis par contre intransigeant sur le pare-feu et le système de défense.

Le meilleur compromis que j'ai trouvé est Comodo Internet Security; il faut prendre garde à refuser quand on l'installe les saletés en option (navigateur dédié..) et il est un peu délicat à paramétrer; j'y active l'antivirus pour la raison que j'ai indiquée...mais en y mettant aussitôt en exclusion l'ensemble de mes disques, interdisant ainsi à la fois qu'il agisse et que Windows Defender reprenne la main (J'y désactive pour la même raison les autres gadgets, bac à sable à confinement automatique, VirusScope, Filtrage de sites Web).

Je garde ainsi selon le niveau d'alerte la main pour être le seul à décider si tel exécutable doit être lancé et par quoi ou si telle connexion en ligne sur un processus et un port inhabituels doit ou non être autorisée.

Bien évidemment, cela sous-tend d'une part que si un virus s'installait, son action serait interceptée par le pare-feu et la composante de défense paramétrés à un niveau suffisant, d'autre part que l'antivirus, c'est moi: les virus résultent quasiment toujours de l'action de l'utilisateur (pièces jointes des mails, téléchargements, clics sur liens douteux...) et sont favorisés via des gens qu'on ne connaît ni d'Eve ni d'Adam (téléchargements illicites, logiciels de p2p, réseaux "sociaux"...), mais il est constaté comme je l'ai évoqué que nombreux sont ceux qui font aveuglément confiance à Windows Defender ou autre sans aucun effet du fait de ces comportements.

Si on doit avoir des comportements "limite", chacun fait ce qu'il veut, il est antinomique de vouloir reposer sur un logiciel qui prendrait tout seul les bonnes ou mauvaises décisions sans rien vous demander, et cela passe par un produit qui va vous enquiquiner pendant toute la durée du paramétrage initial jusqu'à ce qu'on ait mis en place les règles adaptées.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
20 avril 2023 à 22:11

En effet, la main-mise et le flicage de Defender est insuportable. Pour l'UAC et la telemetry, je les squeeze sans problème.
Pas de meilleur antivirus "qu'entre la chaise et le clavier" je te suis totalement.
Merci pour le conseil conceranant Comodo Internet Security, je vais me renseigner dessus.
Pour WDefender, voici mes méthodes :
---------------------------------------------------------
Exécuter gpedit.msc (éditeur de stratégies de groupe)
- Stratégie Ordinateur local / Configuration de l'ordinateur / Composants Windows / Antivirus Microsoft Defender
- Autoriser "Désactiver l'antivirus Windows Defender"
et
- Stratégie Ordinateur local / Configuration ordinateur/Modèles d’administration/Composants Windows/Antivirus Microsoft Defender/Protection en temps réel
- Autoriser "Désactiver la protection en temps réel"
-------------------------------------------------------
HKEY_LOCAL_MACHINE/SOFTWARE/Policies/Microsoft/Windows Defender
- Bouton droit sur Windows Defender, sélectionnez Nouveau, DWORD.
- Double-cliquez sur le DWORD nouvellement créé, le nommer "DisableAntiSpyware" et définir la valeur sur "1"
oubien :
Exécuter cmd en tant qu’administrateur
REG ADD "hklm\software\policies\microsoft\windows defender" /v DisableAntiSpyware /t REG_DWORD /d 1 /f
 (https://windowsreport.com/fr/arreter-antimalware-service-executable/)
----------------------------------
HKEY_LOCAL_MACHINE \ SOFTWARE \ Policies \ Microsoft \ Windows \ System
passer la valeur "EnableSmartScreen" de 1 à 0
----------------------------------------------------------------

SOFTS
----------------------------------------------------------------
Executer "MSEremoval" en mode administrateur
----------------------------------------------------------------
Executer "Ultimate Windows Tweaker"
Barre de gauche, sélectionner l'option « Security & Privacy ».
Cocher la case « Disable Windows Defender »
Valider en cliquant sur « Apply Tweaks » et redémarrer l'ordi pour appliquer les modifs
 (https://informerick.com/tutoriels-informatique/desactiver-windows-defender/)
-------------------------------------------------------
Malgrès toutes ces actions, ils m'arrive de surprendre son "spectre" à la tâche au bout de quelques mois.... c'est terrible !
Aurais-je oublié une action ?

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
20 avril 2023 à 22:15

Mseremoval est un batch ;) à exécuter en admin. Le voici

cd /d "%ProgramFiles%\Microsoft Security Client"

setup.exe /x

TASKKILL /f /im MsMpEng.exe

TASKKILL /f /im msseces.exe

net stop MsMpSvc

sc delete MsMpSvc

REG DELETE "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\MsMpSvc" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Antimalware" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft Security Client" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Microsoft Antimalware" /f

REG DELETE "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current Version\Run\MSC" /f

REG DELETE "HKEY_CLASSES_ROOT\Installer\Products\4C677A77F01DD614880F352F9DCD9D3B" /f

REG DELETE "HKEY_CLASSES_ROOT\Installer\Products\4D880477777087D409D44E533B815F2D" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Security Client" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{774088D4-0777-4D78-904D-E435B318F5D2}" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{77A776C4-D10F-416D-88F0-53F2D9DCD9B3}" /f

REG DELETE "HKEY_CLASSES_ROOT\Installer\UpgradeCodes\1F69ACF0D1CF2B7418F292F0E05EC20B" /f

REG DELETE "HKEY_CLASSES_ROOT\Installer\UpgradeCodes\11BB99F8B7FD53D4398442FBBAEF050F" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\4C677A77F01DD614880F352F9DCD9D3B" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\4D880477777087D409D44E533B815F2D" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\11BB99F8B7FD53D4398442FBBAEF050F" /f

REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UpgradeCodes\1F69ACF0D1CF2B7418F292F0E05EC20B" /f

takeown /f "%ProgramData%\Microsoft\Microsoft Antimalware" /a /r

takeown /f "%ProgramData%\Microsoft\Microsoft Security Client" /a /r

takeown /f "%ProgramFiles%\Microsoft Security Client" /a /r

REM Delete the MSE folders.

rmdir /s /q "%ProgramData%\Microsoft\Microsoft Antimalware"

rmdir /s /q "%ProgramData%\Microsoft\Microsoft Security Client"

rmdir /s /q "%ProgramFiles%\Microsoft Security Client"

REM Stop the WMI and its dependency services

sc stop sharedaccess

sc stop mpssvc

sc stop wscsvc

sc stop iphlpsvc

sc stop winmgmt

REM Delete the Repository folder.

rmdir /s /q "C:\Windows\System32\wbem\Repository"

sc stop

EXIT
0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
20 avril 2023 à 23:07

Je tâcherai de voir ça demain, mais tu te fatigues pour pas grand-chose.

La seule installation d'un produit tiers (Comodo en ce qui me concerne) désactive la triade Antivirus-Pare-feu-Défense quitte à rajouter la désactivation graphique de tout ce qui traîne dans le Centre de Sécurité.

Rappelons que l'éditeur de stratégie locale ne fonctionne (sauf contournement) que sous les versions Windows Pro, et qu'il est de toute façon un peu étranger à nos misères.

Il ne faut pas oublier les tâches planifiées (y compris par exemple celles de Edge même inutilisé et services désactivés), mais il ne faut pas se prendre la tête, un certain nombre d'utilitaires font le job en intégrant le cas échéant par voie graphique les scripts appropriés (souvent PowerShell, Batch marque ses limites).

Le souci, je tâcherai de penser à vérifier demain, c'est qu'il n'y en a pas un qui fasse le job totalement et proprement (certains se contentant par exemple de désactiver la télémétrie par le fichier Hosts, ce n'est pas une bonne idée, et on ne peut d'ailleurs pas totalement l'interdire, par exemple Office ne démarre pas sans) et qu'il faut donc parfois en invoquer 2 ou 3.

Mais on peut, par "combinaison", désactiver par voie graphique Defender, la quasi-totalité des applications Windows qui ne nous servent à rien, l'essentiel de la télémétrie, parfois même les services et tâches planifiées.

Se souvenir aussi qu'il vaut mieux prévenir que guérir: revenant à l'exemple Office, il existe bien caché un item "d'expérience utilisateur" qu'on ne pense pas toujours à désactiver lors de l'installation.

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891 > brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024
21 avril 2023 à 09:22

On va essayer de schématiser la situation, sans quoi il y a un roman à écrire.

-Toujours préférer un compte local à un compte Microsoft.

-Dans les paramètres, s'attaquer aux autorisations de Rechercher, à Confidentialité (Général et Diagnostics), au contrôle applications et navigateur du Centre de Sécurité.

-Mettre sur Manuel ou Désactivé les services inutiles en fonction de son utilisation via services.msc et/ou Autoruns, se référer sur Internet aux listes de services inutiles; ne pas utiliser les outils "maison" (Edge, Bing, Cortana...) mais ne pas désactiver les fractions possibles de Windows Defender sauf en connaissance de cause (antivirus) ou si on utilise un produit tiers, en se souvenant que la mouche ne fait que changer d'âne: il est probable que le produit tiers a sa propre télémétrie.
-Les utilitaires passant par des scripts dont "anti Bloatware"  doivent être rejetés, on n'en connaît pas sur le plan global la portée ou la réversibilité.

-Les Tweakers "habituels" (Winaero Tweaker, Ultimate Windows Tweaker) sont souvent redondants et n'offrent qu'un intérêt ponctuel pour désactiver seulement certaines fonctions.

-Des utilitaires comme Dism++ sont plus puissants, permettant de désinstaller des Applications ou un certain nombre de paramètres; Bulk Crap Uninstaller s'attaque aux premières de manière moins conviviale, de même manière que Destroy Windows Spying (où on ne doit pas s'attaquer aux domaines et IP espions et qui n'est pas très pratique).
-Les utilitaires sans doute les plus complets et les plus faciles à manipuler à cet égard sont WPD (on s'attaque là aussi directement aux tâches planifiées sans avoir à le faire à la main) ou SpyBot AntiBeacon.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
21 avril 2023 à 18:46

Eh bien, j'avoue être étonné par ton expérience dans le domaine !

Je suis sous W10pro. Bien sùr, je surveille l'installation du moindre logiciel à la loupe concernant les autorisations et communications aux tiers, le paramétrage du hosts me servant aussi parfois lorsque je sais à qui ils caftent. Gpedit.msc et Services.msc me servent souvent, et je surveille également le planificateur de tâches. Pour la télémétrie, O&Oshutup marche plutôt bien sans bloquer office. Quand aux softs microsoft intégrés, cortana, edge, wmplayer, etc, je les squeeze dès l'installation de windows. Et quant aux clouds, ils vivront très bien sans moi... ;). Aucun soft n'est installé sans revo.

Winaero Tweaker me sert uniquement pour l'UAC.

Je découvre Dism++, merci, mais n'ai pas compris ce que tu dis de Destroy Windows Spying.

Je découvre aussi WPD et SpyBot AntiBeacon !

Merci pour tout ces conseils. Tout ceci n'est pas plus de la parano qu'un souhait résolu de ne pas mutualiser mes données à outrance et surtout sans consentement (bien que je ne lise pas toutes les conditions d'utilisation), tous les éditeurs convoitant sans retenue nos données personnelles.

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
21 avril 2023 à 19:09

Destroy Windows Spying a aussi un paramètre qui incrémente le fichier Hosts de centaines de domaines et IP à bloquer puisque redirigées vers 0.0.0.0, pas une bonne idée à mon sens.

Il faut tout de même raison garder: la partie de la télémétrie qui gère nos intérêts personnels est inévitable, Windows, Firefox ou ce qu'on voudra n'ont aucun moyen de nous proposer une mise à jour si l'éditeur n'est pas informé de la version que nous utilisons.

N'oublions pas aussi que le navigateur communique un certain nombre d'informations et qu'un certain nombre d'entreprises que tout le monde utilise (Google) vivent précisément d'un modèle reposant sur la commercialisation des données, censée être anonyme, mais bon...

C'est "moins pire" que de me voir "proposer" d'acheter des pneus parce qu'il aurait été constaté que j'ai fait une recherche sur le caoutchouc.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
21 avril 2023 à 20:45

Je vois mieux pour Destroy Windows Spying, merci, donc je l'éviterai. J'ai suivi 1 long tuto interresant sur Comodo Free Internet Security, du coup, j'hésite à prendre une 3 eme licence pour nod32 pour mon 3e poste... Il semble ne pas trop manger de ressources système, et le ratio efficacité/rapidité semble plaire à ses habitués... sans parler du bon nombre de paramétrages possibles..

Je me suis amusé il y a quelques années à lire ce que google se réservait comme droits sur l'exploitation et la confidentialité des données collectées et j'avoue avoir été qq peu refroidi, donc un petit nettoyage vérification sur les données collectées sur son site tous les 6 mois me tranquilise. Et puis un bon vpn ne fait pas de mal.

Je vais me prendre le weekend pour découvrir Dism++, mais aussi WPD et SpyBot AntiBeacon. Te dirai ce que j'en pense. Merci encore du conseil.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
22 avril 2023 à 18:16

Bonjour Brucine,

Dism++
J'ai été impressionné par l'efficacité et la clarté de ce (mini) soft, apparemnt implémenté par plusieurs développeurs (qui signent d'ailleurs leurs contributions)
Le détail des fichiers de démarrage est d'une clarté absolue.
Dans le nettoyage, j'ai coché nettoyer "composants WinSxS remplacés" ce qui a pris pas mal de temps. Ne sais si j'ai bien fait.
Appis Windows store, j'ai bien envie de cocher pas mal de choses, mais j'ai peur de faire des bétises.
Le menu paramètres est vraiment très complet.
Plusieurs années que j'utilise Glary utilities, mais Dism++ est un peu plus explicite dans ce qu'il fait.
Par contre je n'y ai pas vu d'options pour gérér la confidentialité, type Nettoyeur de traces (temps, logs, base de registre, etc...)
Merci de m'avoir signalé ce soft. Il est adopté !

WDP
J'avais oublié que je l'utilise sur chacun des ordinateurs après 1 install (dégraissée manuellement) de windows (pour cortana, UAC, Télémmétrie Statégie de GLocal, et autre mouchards windows).
Donc utilisé 1 fois, puis je l'oublie.
C'est vrai qu'il est bien pratique. Par contre, le pare-feu Windows Defender reviendra en place peu de temps après, ce qui explique mes x manips pour tenter le tuer "définitivement".

SpyBot AntiBeacon (je connaissais search&destroy) sembla pas mal, mais 10 euros sont un peu chers, quand on voit ce que des freewares peuvent faire (comme wdp), en français qui plus est.

0
brucine Messages postés 14628 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 16 mai 2024 1 891
23 avril 2023 à 00:54

DISM++ n'est pas un utilitaire destiné à la confidentialité/télémétrie mais davantage orienté vers le ménage des applications, bloatwares, reliquats d'installation...

Maintenant et comme je l'évoquais, on peut limiter le tir (et ce qui permet dans une certaine mesure d'accélérer sa machine), mais l'anonymat d'un Internet anonyme et sans traces est une vue de l'esprit; pour ma part, je déteste surtout les pubs et "suggestions", ciblées ou pas, et le fait qu'un certain nombre d'applications que je n'ai pas demandées et dont je ne me servirai jamais soient invirables ou en tout cas très difficilement: je ne vois pas pourquoi quiconque m'obligerait à trimbaler Edge, Cortana ou une pré-installation XBox dont je n'ai que faire.

Le problème des éditeurs de logiciels est plus complexe; on trouve, à force de publicité, des tas de pseudo-utilitaires payants qui ne servent à rien, notamment dans le domaine du matériel (pilotes) et de la "sécurité".

D'un autre côté, plus personne ne veut payer y compris pour des suites bureautiques ou graphiques complexes; si je prends un contre-exemple que tu connais (il y en a d'autres), le type qui a développé XXCOPY, c'est beaucoup de travail, il n'aurait peut-être pas démérité d'être défrayé de quelques euros symboliques.

Moi, et comme tu le sais aussi, mes scripts, je les fais moi-même mais c'est du temps passé à avoir essayé d'analyser et comprendre ceux des autres et, quand j'ai compris quelque chose, je les propose gratis..

Le problème de beaucoup de ces anti-bloatwares spywares...(rayer la mention inutile), c'est qu'ils ne sont le plus souvent que la transcription graphique de tels scripts qu'on n'a pas inventés, je ne comprends rien à cette compilation, et je ne suis pas sûr qu'elle vaille d'être monnayée.

En tout cas, je ne sais pas où tu l'as téléchargé, mais SpyBot Anti-Beacon, personne ne m'a demandé de le payer et je ne l'aurais pas fait.

Je me suis fait planter de mon PC hier soir je ne sais pas trop pourquoi, rien d'autre n'a fonctionné que de réinstaller Windows 10 à partir de sa clé d'installation, donc sans récupération ni réparation.

La casse est limitée parce que mes programmes et données sont sur des partitions séparées, mais j'ai refait 99% du paramétrage (y compris les indésirables) par voie purement graphique avec les outils Windows et seulement quelques finitions principalement avec Winaero Tweaker; la plupart des nuisibles sont virés directement par l'interface Windows, y compris la télémétrie via les services et tâches planifiées, les utilitaires cités ne servant finalement qu'à éjecter les récalcitrants (XBox, ZuneMusic...).

Ils ne sont une solution de facilité que parce qu'on n'aura pas pris le soin préalable de consigner les procédures dans des favoris, des mémos texte ou ce que l'on veut, mais ils ne sont pas sans danger de fausse manipulation et il ne faut pas que l'arbre cache la forêt.

0
bibi2224 Messages postés 95 Date d'inscription vendredi 10 mars 2023 Statut Membre Dernière intervention 19 octobre 2023 2
23 avril 2023 à 15:55

Je compatis pour ton souci de réinstallation...:(
Suis 1 peu comme toi, et procède pas à pas pour "nettoyer" manuellement le nouveau système, puis chaque soft, pas à pas.
Pour cela, j'ai des pense-bête pour me rappeller les paramétrages idoines (les miens et ceux glanés depuis longtemps sur la toile), qui allègeront les softs, les mettront à ma main, les empècheront de cafter ça et là, et bloqueront les multiples démarrages automatiques non consentis..
Il me faut bien une journée pour cela, et cette rengaine me fatigue parfois, mais c'est 1 vrai plaisir ensuite de démarrer un système tout propre, stable, qui va vite.
Du coup, ça fait des années que des connaissanes viennent me voir avec des ordis en vrac et repartent avec du matériel en bonne forme.
Ca m'amuse de parler "toilettage" ordi avec toi, car le sujet est trop peu discuté sur la toile, ou de façon trop spécifique, alors que disposer d'un bon outil est indispensable, même si son utilisation n'est pas professionnelle.
Ma grosse lacune concerne les réseaux, mais j'essaie de me former..
Comme toi, j'ai peu de connaissances mais j'aime les partager, et d'ailleurs te suis toujours redevable car ce fut à sens unique jusqu'à présent....

0