Comparaison de deux dossiers
Bonjour,
Je souhaiterais mettre en place un script qui permettrai de comparer un dossier Modele avec le contenue de dossier client. Si le contenue du dossier Client est différent du modèle, on écrase le dossier client avec le contenue du dossier modèle.
Code:
1 2 3 4 5 6 7 8
| Dir C:\Script\DossierA\ /S > C:\Script\DossierlisteA.txt
::Je relève le contenue du dossierA et des sous dossiers dans un fichier TXT
Dir C:\Script\DosssierB\ /S > C:\Script\dossierlisteB.txt
::Je relève le contenue du dossierB dans un fichier TXT et des sous dossiers dans un fichier
Dir C:\Script\DossierA\ASC2I-XPS\ > C:\Script\DossierlisteA.txt
fc C:\Script\DossierlisteA.txt C:\Script\dossierlisteB.txt > C:\Script\Resultat.txt |
Le problème c'est qu'a la fin je me retrouve avec un résultat qui me met bout à bout chaque contenue des dossiers sans m'indiquer si oui ou non il y a une différence.
Création d'un fonction or
Effectivement le /E /S est une erreur de ma part, c'est vrai qu'a l'aide d'un fichier txt la fonction exclude fonctionne beaucoup mieux derrière..
Un grand merci pour votre aide.
J'aimerais réduire la taille de mon script en fusionnant les deux fonction suivante :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
If "%1" == "PSI" (
::Verification du PSI-USER
echo ##########################################################################
echo ################### VERIFICATION DU CLIENT 1/2 ##########################
echo ##########################################################################
echo %lettre_client%\%RACINE_TYPE%\PSI-XP\PSI-XP-CLIENT\PSI-POST\PSI-POST.MDB>excludedfileslist.txt
::Vérifie la présence du PSI-USER
IF NOT EXIST "%lettre_client%\%RACINE_TYPE%\PSI-XP\PSI-XP-CLIENT\PSI-USER\PSI-USER.MDB" XCOPY "%racine_dossier_clients_modele%\%RACINE_TYPE%" "%lettre_client%\%RACINE_TYPE%" /E /Q /Y /exclude:excludedfileslist.txt
echo o|del /s excludedfileslist.txt
)
If "%1" == "PSI" (
::Verification du PSI-LANC
echo ##########################################################################
echo ################### VERIFICATION DU CLIENT 2/2 ##########################
echo ##########################################################################
echo %lettre_client%\%RACINE_TYPE%\PSI-XP\PSI-XP-CLIENT\PSI-POST\PSI-POST.MDB>excludedfileslist.txt
::Vérifie la présence du PSI-LANC
IF NOT EXIST "%lettre_client%\%RACINE_TYPE%\PSI-XP\PSI-XP-CLIENT\PSI-LANC\PSI-LANC.MDE" XCOPY "%racine_dossier_clients_modele%\%RACINE_TYPE%" "%lettre_client%\%RACINE_TYPE%" /E /Q /Y /exclude:excludedfileslist.txt
echo o|del /s excludedfileslist.txt
) |
En une seule et unique fonction... en crée un sorte de OR logique... je pense être sur la bonne piste.... mais la je bloque, je voulais stocker les résultats dans une variable, et si cette variable atteint une certaine valeur... j'applique une autre action...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
If "%1" == "PSI" (
PAUSE
:: vérificationfichier
echo ##########################################################################
echo ######################## VERIFICATION DU CLIENT #########################
echo ##########################################################################
set error=false
IF NOT EXIST "%lettre_client%\%RACINE_TYPE%\PSI-XP\PSI-XP-CLIENT\PSI-USER\PSI-USER.MDB" == 1 set error=true
IF NOT EXIST "%lettre_client%\%RACINE_TYPE%\PSI-XP\PSI-XP-CLIENT\PSI-LANC\PSI-LANC.MDE" == 1 set error=true
if "%error%" == "true" (
echo %lettre_client%\%RACINE_TYPE%\PSI-XP\PSI-XP-CLIENT\PSI-POST\PSI-POST.MDB>excludedfileslist.txt
XCOPY "%racine_dossier_clients_modele%\%RACINE_TYPE%" "%lettre_client%\%RACINE_TYPE%" /E /Q /Y /exclude:excludedfileslist.txt
echo o|del /s excludedfileslist.txt
)
) |