IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scripts/Batch Discussion :

Comparaison de deux dossiers


Sujet :

Scripts/Batch

  1. #1
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut 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 batch : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Il y aura forcement une différence puisque C:\Script\DossierA\ est différent de C:\Script\DosssierB\

    Tu ne voit pas la différence dans C:\Script\Resultat.txt ? Que contient il alors ?
    Que fait 'Dir C:\Script\DossierA\ASC2I-XPS\ > C:\Script\DossierlisteA.txt' ?
    Si le contenu est différent tu veux fusionner ou remplacer le dossier client ?
    Tel que ton script est imaginé/fait, il comparera uniquement la structure sans vérifier le contenu, c'est ce que tu souhaite ?

    Voici un exemple pour afficher un texte selon la comparaison.
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    fc /b a.txt a.txt >nul 2>nul &&echo pareille||echo différent ou erreur

  3. #3
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Probleme avec Exclude.
    Merci beaucoup,
    Je bloque sur une autre parti concernant mon script avec la fonction exclude.
    J'aimerais réalisé une vérification de la présence d'un fichier particulier sur mon dossier client. Si ce fichier n'est pas présent dans mon dossier client, je le remplace par la totalité du dossier model à l’exception d'un fichier.
    Mon script fonctionne bien sans le exclude... par contre avec la fonction, la copie ne se lance plus.


    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If "%1" == "PSI" (
    ::Verification PSI-USER
    echo ##########################################################################
    echo ###################  VERIFICATION DU CLIENT 2/2 ##########################
    echo ##########################################################################
    ::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 /S /Y /EXCLUDE:"%lettre_client%\%RACINE_TYPE%\PSI-XP\PSI-XP-CLIENT\PSI-POST\PSI-POST.MDB"
    )

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    1) /E et /S semble contradictoire choisi en un qui correspond à ton besoin
    2) /Exclude prend des fichiers en paramatère, exemple : /exclude:excludedfileslist.txt
    Ce fichier 'excludedfileslist.txt' doit contenir ta liste d'exclusion \PSI-XP\PSI-XP-CLIENT\PSI-POST\PSI-POST.MDB
    Tu peux le créer avant de lancer ton xcopy si tu as des chemins devant être évalués dans ton script, exemple : echo %lettre_client%\%RACINE_TYPE%\PSI-XP\PSI-XP-CLIENT\PSI-POST\PSI-POST.MDB>excludedfileslist.txt

  5. #5
    Candidat au Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Septembre 2016
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Santé

    Informations forums :
    Inscription : Septembre 2016
    Messages : 4
    Points : 3
    Points
    3
    Par défaut 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 batch : 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
     
    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 batch : 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
     
    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
    )
    )

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    je voulais stocker les résultats dans une variable, et si cette variable atteint une certaine valeur... j'applique une autre action...
    C'est à dire ?

    Oui, ce code simule un OU.
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    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"

    Pourquoi 'echo o |' ? Si c'est pour supprimer la demande de confirmation il y a un paramètre directement dans la commande del.
    Code batch : Sélectionner tout - Visualiser dans une fenêtre à part
    echo o|del /s excludedfileslist.txt

Discussions similaires

  1. [Batch] Comparaison entre deux dossiers
    Par Ysae68 dans le forum Scripts/Batch
    Réponses: 4
    Dernier message: 14/12/2015, 08h58
  2. Comparaison de deux dossiers et copie de modifications dans un troisième
    Par fredobaldo dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 01/04/2015, 12h00
  3. PL/SQL COMPARAISON DE DEUX TABLEAUX APRES BULK
    Par mimi_été dans le forum PL/SQL
    Réponses: 5
    Dernier message: 30/06/2009, 12h14
  4. [SYBASE] Comparaison de deux datetime
    Par paf15 dans le forum Sybase
    Réponses: 1
    Dernier message: 17/04/2005, 16h51
  5. Réponses: 5
    Dernier message: 06/10/2003, 17h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo