Log de batch

Bonjour,

Je suis responsable de la section migration d'une grande société qui fusionne avec une autre, j'ai créer un script me permettant de sauvegarder les profils des postes, les dossiers spécifiques, tous les transferts sont loggé dans un répertoire unique a chaque machine et utilisateur.

Pourriez vous m'aider pour me dire comment faire pour répertorier dans un autre répertoire par example "error" les postes qui ne réponde pas, ou si ya des erreurs quel aille automatiquement dans le fichier log, mais avec un fichier spécifique a chaque machine.

Merci d'avance, je reste a votre dispo pour résoudre le problème.

Vincent
Configuration: P4 à 2,66 Ghz overclock 3.1 Ghz Carte graphique nvidia 7800 - AGP 8x - 256Mo DDR3 - Tv-out + DVI 2 Disque dur interne 250Go et 300Go 1 disque dur Externe 120Go 1 Go Mémoire DDR PC3200 (400mhz) Carte Sound Blaster Xifi Windows Xp Pro SP2 et Windows Vista Pro SP1

4 réponses

  1. Salut,
    je sais pas si cela peut repondre à ton prb, mais tu peux créer une variable et faire des test avec test: if ERRORLEVEL
    set log_error=logerror%COMPUTERNAME%.txt
    set patherror=c:\un_chemin
    cd %patherror%
    mkdir logError%COMPUTERNAME%
    cd logError%COMPUTERNAME%
    echo error>>%log_error%
    @+
    1. Merci de ta réponse j'ai essayer de l'integrer, mais il m'indique command invalid

      Je t'envoie ci dessous mon script complet, j'ai retirer les mots de passe des net use volontairement...
      Comme tu pourra le remarquer chaque robocopy a sa log, mais j'ai comme contrainte dans une log erreur :
      - Indiquer si une machine n'a pas été migrer (j'ai 350postes)
      - Indiquer si le nom d'utilisateur n'existe pas sur la machine
      - et enfin si un répertoire n'y ai pas l'inscrire aussi dans la log erreur.

      Je rappel que c'est une fusion et que le script doit être universal au 2 société.

      Merci

      @echo off
      cls
      rem Configuration des variables globales
      SETLOCAL
      Set PC=%1
      Set User=%2
      Set BackupFolder="Z:\machine"
      Set Racine="Z:\ProfileBackup\Backup"
      Set log="Z:\machine\log\%user%-%pc%"
      echo Poste courant: %PC%
      echo Utilisateur courant: %User%
      title %PC%:%User%
      if exist \\%1\c$\windows Set WindowsFolder=windows
      
      
      echo Supprimer les anciens profils (de plus de 30 jours)
      delprof /q /i /c:\\%PC% /d:30
      echo ...
      
      echo Connection X: sur \\137.3.0.53\Perso
      Net use m: \\137.3.0.53\Perso /user:
      echo Connection V: sur \\%PC%\c$
      Net use v: \\%PC%\c$ /user:
      
      echo Utilisateur courant: %User%
      echo Copie des fichiers nécessaires à la sauvegarde de registre ...
      echo ...
      copy /y /z kix32.exe \\%PC%\c$\%WindowsFolder%\system32\kix32.exe
      copy /y /z kx32.dll \\%PC%\c$\%WindowsFolder%\system32\kx32.dll
      copy /y /z savePC.kix \\%PC%\c$\%WindowsFolder%\system32\savePC.kix
      copy /y /z DelTempFiles.vbs \\%PC%\c$\%WindowsFolder%\system32\DelTempFiles.vbs
      copy /y /z saveProfile.bat \\%PC%\c$\%WindowsFolder%\system32\saveProfile.bat
      copy /y /z savePST.bat \\%PC%\c$\%WindowsFolder%\system32\savePST.bat
      echo ...
      
      echo Supprimer les fichiers temporaires et d'exécuter un profil de sauvegarde du Registre sur l'ordinateur distant ...
      echo ...
      psexec \\%PC% -d -s "c:\windows\system32\saveProfile.bat"
      echo ...
      
      echo Copie de fichiers du Profils %User% sur le poste %PC%
      echo ...
      md %BackupFolder%\%PC%
      md %log%
      REM !!! PAS DE /SEC !!!
      Robocopy "\\%1\c$\Documents and settings\%user%\Mes documents" "%BackupFolder%\%1\C\Documents and Settings\%user%\Mes documents" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /log+:"%log%\Mes documents.log" /NP /V
      Robocopy "\\%1\c$\NWLS" "%BackupFolder%\%1\C\NWLS" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /MIR /log+:"%log%\NWLS.log" /NP /v
      Robocopy "\\%1\c$\Documents and settings\%user%\Favoris" "%BackupFolder%\%1\C\Documents and Settings\%user%\Favoris" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /MIR /log+:"%log%\Favoris.log" /NP /v
      Robocopy "\\%1\c$\Documents and settings\%user%\bureau" "%BackupFolder%\%1\C\Documents and Settings\%user%\bureau" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /MIR /log+:"%log%\bureau.log" /NP /v
      Robocopy "\\%1\c$\Documents and settings\%user%\Application Data\Microsoft\Épreuve" "%BackupFolder%\%1\C\Documents and Settings\%user%\Application Data\Microsoft\Épreuve" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /MIR  /log+:"%log%\dictionnaire.log" /NP /v
      
      
      ENDLOCAL
      
      Net use m: /delete
      Net use v: /delete
      
      echo Nous venons de terminer de charger tous les profils utilisateur à partir de %PC%
      echo Vérifiez que tous les fichiers sont présents dans le répertoire de sauvegarde
      echo Essayez de charger les fichiers de sauvegarde à l'utilisateur du système après installation informatique
      pause
      1. J'ai trouvé une solution qui est presque fini :

        @echo off
        cls
        rem Configuration des variables globales
        SETLOCAL
        Set PC=%1
        Set User=%2
        Set BackupFolder="Z:\machine"
        Set Racine="Z:\ProfileBackup\Backup"
        Set log="Z:\machine\log\%user%-%pc%"
        set logerror="z:\machine\log\_error\"
        echo Poste courant: %PC%
        echo Utilisateur courant: %User%
        title %PC%:%User%
        if exist \\%1\c$\windows Set WindowsFolder=windows
        
        rem echo Supprimer les anciens profils (de plus de 30 jours)
        rem delprof /q /i /c:\\%PC% /d:30
        rem echo ...
        
        echo Connection X: sur \\137.3.0.53\Perso
        Net use m: \\137.3.0.53\Perso /user:
        echo Connection V: sur \\%PC%\c$
        Net use v: \\%PC%\c$ /user:
        
        echo Utilisateur courant: %User%
        echo Copie des fichiers n‚ss‚ssaires … la sauvegarde de registre ...
        echo ...
        copy /y /z kix32.exe \\%PC%\c$\%WindowsFolder%\system32\kix32.exe
        copy /y /z kx32.dll \\%PC%\c$\%WindowsFolder%\system32\kx32.dll
        copy /y /z savePC.kix \\%PC%\c$\%WindowsFolder%\system32\savePC.kix
        copy /y /z DelTempFiles.vbs \\%PC%\c$\%WindowsFolder%\system32\DelTempFiles.vbs
        copy /y /z saveProfile.bat \\%PC%\c$\%WindowsFolder%\system32\saveProfile.bat
        copy /y /z savePST.bat \\%PC%\c$\%WindowsFolder%\system32\savePST.bat
        echo ...
        
        echo Supprimer les fichiers temporaires et d'ex‚cuter un profil de sauvegarde du Registre sur l'ordinateur distant ...
        echo ...
        psexec \\%PC% -d -s "c:\windows\system32\saveProfile.bat"
        
        echo lancement de la recherche et Synchronisation des fichier *.pst
        echo...
        psexec \\%PC% -d -s "c:\windows\system32\savePST.bat"
        
        echo Copie de fichiers du Profils %User% sur le poste %PC%
        echo ...
        md %BackupFolder%\%PC%
        md %log%
        REM !!! PAS DE /SEC !!!
        
        Set erreur=Doc
        set erreur2=%log%\Mes documents.log
        Robocopy "\\%1\c$\Documents and settings\%user%\Mes documents" "%BackupFolder%\%1\C\Documents and Settings\%user%\Mes documents" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /log+:"%log%\Mes documents.log" /NP /V
        if errorlevel 1 goto test
        :Doc
        
        Set erreur=NWLS
        set erreur2=%log%\NWLS.log
        Robocopy "\\%1\c$\NWLS" "%BackupFolder%\%1\C\NWLS" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /MIR /log+:"%log%\NWLS.log" /NP /v
        if errorlevel 1 goto test
        :NWLS
        
        Set erreur=Favoris
        set erreur2=%log%\Favoris.log
        Robocopy "\\%1\c$\Documents and settings\%user%\Favoris" "%BackupFolder%\%1\C\Documents and Settings\%user%\Favoris" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /MIR /log+:"%log%\Favoris.log" /NP /v
        if errorlevel 1 goto test
        :Favoris
        
        Set erreur=bureau
        set erreur2=%log%\Bureau.log
        Robocopy "\\%1\c$\Documents and settings\%user%\bureau" "%BackupFolder%\%1\C\Documents and Settings\%user%\bureau" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /MIR /log+:"%log%\bureau.log" /NP /v
        if errorlevel 1 goto test
        :bureau
        
        
        Set erreur=AppData
        set erreur2=%log%\dictionnaire.log
        Robocopy "\\%1\c$\Documents and settings\%user%\Application Data\Microsoft\‚preuve" "%BackupFolder%\%1\C\Documents and Settings\%user%\Application Data\Microsoft\‚preuve" /s /e /ETA /r:0 /XF "*.tmp" "*.mp3" "*.mp4" "*.avi" /MIR  /log+:"%log%\dictionnaire.log" /NP /v
        if errorlevel 1 goto test
        :AppData
        
        ENDLOCAL
        
        Net use m: /delete
        Net use v: /delete
        
        echo Nous venons de terminer de charger tous les profils utilisateur … partir de %PC%
        echo V‚rifiez que tous les fichiers sont pr‚sents dans le r‚pertoire de sauvegarde
        echo Essayez de charger les fichiers de sauvegarde de l'utilisateur du systŠme aprŠs installation informatique
        pause
        
        goto fin
        :test
        echo Passage dans le test avec  Error: %errorlevel% PC:%PC% Erreur:%erreur% Erreur2:%erreur2%
        if errorlevel 53 echo %erreur2% Chemin reseau introuvable >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 16 echo %erreur2% ***FATAL ERROR*** >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 15 echo %erreur2% FAIL MISM XTRA COPY >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 14 echo %erreur2% FAIL MISM XTRA >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 13 echo %erreur2% FAIL MISM COPY >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 12 echo %erreur2% FAIL MISM >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 11 echo %erreur2% FAIL XTRA COPY >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 10 echo %erreur2% FAIL XTRA >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 9 echo %erreur2% FAIL COPY >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 8 echo %erreur2% FAIL >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 7 echo %erreur2% MISM XTRA COPY >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 6 echo %erreur2% MISM XTRA >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 5 echo %erreur2% MISM COPY >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 4 echo %erreur2% MISM >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 3 echo %erreur2% XTRA COPY >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 2 echo %erreur2% XTRA >>%logerror%\%PC%-erreur.txt & goto %erreur%
        if errorlevel 1 echo %erreur2% COPY SUCCESSFUL >>%logerror%\%PC%-OK.txt & goto %erreur%
        if errorlevel 0 echo %erreur2% NO CHANGE >>%logerror%\%PC%-erreur.txt & goto %erreur%
        Echo Erreur dans le script !
        pause