web-dev-qa-db-fra.com

éviter les détails de fichier existants du dossier de destination dans le journal Robocopy

Je voudrais éviter tous les noms de fichiers existants et les détails du dossier de destination lors de l'utilisation de Robocopy Log.

Je veux juste montrer seulement la liste des fichiers copiés et ses détails.

Donc, je pourrais économiser sur la taille du fichier journal Robocopy en évitant les détails de fichier existants sur le journal.

Y at-il une option pour l'éviter, s'il vous plaît aider sur ce

Je ne voyais aucune option pour cela 

Options de journalisation: ::

             /L :: List only - don't copy, timestamp or delete any files.
             /X :: report all eXtra files, not just those selected.
             /V :: produce Verbose output, showing skipped files.
            /TS :: include source file Time Stamps in the output.
            /FP :: include Full Pathname of files in the output.
         /BYTES :: Print sizes as bytes.

            /NS :: No Size - don't log file sizes.
            /NC :: No Class - don't log file classes.
           /NFL :: No File List - don't log file names.
           /NDL :: No Directory List - don't log directory names.

            /NP :: No Progress - don't display percentage copied.
           /ETA :: show Estimated Time of Arrival of copied files.

      /LOG:file :: output status to LOG file (overwrite existing log).
     /LOG+:file :: output status to LOG file (append to existing log).

   /UNILOG:file :: output status to LOG file as UNICODE (overwrite existing log).
  /UNILOG+:file :: output status to LOG file as UNICODE (append to existing log).

           /TEE :: output to console window, as well as the log file.

           /NJH :: No Job Header.
           /NJS :: No Job Summary.

       /UNICODE :: output status as UNICODE.
14
Sun_Sparxz

Par défaut, robocopy enregistre uniquement les dossiers et les fichiers non présents/modifiés (copiés).

          New Dir          2    C:\Temp\a\
100%        New File                   0        bar.txt
100%        New File                   0        foo.txt

Vous pouvez supprimer la journalisation des dossiers avec le commutateur /ndl (dans ce cas, les fichiers copiés seront listés avec leur chemin complet).

100%        New File                   0        C:\Temp\a\bar.txt
100%        New File                   0        C:\Temp\a\foo.txt

Modifiez simplement foo.txt et relancez robocopy a b /ndl et vous obtenez

100%        Newer                      3        C:\Temp\a\foo.txt

Ajoutez /njh et /njs pour supprimer l’en-tête et le résumé de la sortie. Ajoutez /np pour supprimer l'indication de progression (la valeur en pourcentage au début de la ligne de sortie). Ajoutez /xx pour supprimer l'indication de fichiers supplémentaires (fichiers existant uniquement dans la destination, mais pas dans le dossier source):

C:\Temp>robocopy a b /njh /njs /ndl /np

          *EXTRA File                  0        C:\Temp\b\baz.txt
            New File                   0        C:\Temp\a\bar.txt
            New File                   0        C:\Temp\a\foo.txt

C:\Temp>echo "foo" >a\bar.txt

C:\Temp>robocopy a b /njh /njs /ndl /np /l

          *EXTRA File                  0        C:\Temp\b\baz.txt
            Newer                      3        C:\Temp\a\bar.txt

C:\Temp>robocopy a b /njh /njs /ndl /np /xx /l

            Newer                      8        C:\Temp\a\bar.txt
19
Ansgar Wiechers

Vous devriez utiliser /NFL /NDL. Ils supprimeront toutes les listes de répertoires et de fichiers qui ne font pas partie des actions robocopy.

3
Mat M

Il semble que vous ne puissiez pas utiliser cette publication TechNet car même le résultat /v afficherait toujours les fichiers ignorés.

La seule option que je peux imaginer serait d'exécuter un script sur le journal en supprimant les lignes ignorées.

2
AbsoluteƵERØ

Enfin, je n’ai trouvé aucun commutateur, j’ai choisi de créer un script qui supprime la ligne de détails des fichiers existants et redéfinit le fichier avec le même nom de fichier après chaque copie terminée

#To remove all Lines with string "Extra File"
 (Get-Content $LogPath)-replace '(.*Extra File).+' | Set-Content $LogPath 

#To remove all empty lines 
(Get-Content $LogPath) | Where-Object {$_ -match '\S'} | Set-Content $LogPath  

ce que j'ai fait dans mes fichiers de log pour la ligne de détails de fichier existante commence par la chaîne "Extra File", donc je supprime toutes ces lignes. Mais l'espace de ligne reste. J'ai donc utilisé une autre commande pour supprimer toutes les lignes vides.

S'il vous plaît contribuer, tout le monde a la méthode facile pour cela

1
Sun_Sparxz

J'ai vu que /XX évite également de supprimer les fichiers EXTRA du dossier de destination et pour cette raison il n'enregistre pas les informations de fichier supplémentaires . Quelqu'un a déjà dit précédemment que /XX annule l’option /MIR.

1
Craig C

Je pense que cela peut fonctionner: Robocopy sourceDir targetDir. / njh/njs/ndl/np | find/v "* Extra File"

Il suffit donc de diriger la sortie vers "find" avec le/V pour exclure les lignes contenant le texte spécifié "* Extra File".

1
Svein Terje Gaup

Essayer de couper à travers le bruit; utilisez robocopy /xx et il ne montrera PAS les fichiers déjà présents dans le dossier de destination.

0
Daniel Mošmondor