Batch avec Robocopy, probléme de log

Une difficulté, une précision posez vos questions

Modérateur : WIN32-[GG]

Répondre
fresh
Batcheur occasionnel
Messages : 1
Enregistré le : 26 oct. 2010 18:32

Batch avec Robocopy, probléme de log

Message par fresh »

Bonjour à tous,

voila mon soucis:
j'ai fait un script pour copier le contenu d'un dossier dans un autre. le but étant de ne prendre que les fichiers ne contenant pas la chaine de caractères "NOCOP" et d'écrire un compte rendu dans un fichier de log.
le script est exécuté toutes les 30 min et forcément la log ne doit être remplie que lorsque quelque chose est copié.

Code : Tout sélectionner

ROBOCOPY source/ destination/ /xO /XF NOCOP  /LOG+:log.txt /NJS /NJH /TS /NDL /NC /NS /NP

mon problème est que lorsqu'il s'exécute et ne copie rien, il écrit quand même un retour chariot dans le fichier log.
à force je me retrouve donc avec des grands espaces entre chaque log.

Quelqu'un aurait-il une idée pour écrire dans la log uniquement lorsqu'une copie est effectuée?

merci à vous.

fresh
DarkBatcher
King Of Batch
Messages : 66
Enregistré le : 06 juil. 2010 17:37
Contact :

Re: Batch avec Robocopy, probléme de log

Message par DarkBatcher »

hello,

ce sera peut être pas très rapide si le fichier contient plusieurs milliers de lignes, mais le plus simple c'est de parser le log avec la commande for. Il faut mettre le code à la fin du batch pour que les espaces soient supprimé, ou tout simplement le mettre dans un batch séparé et le lancer à la fin de la journée (ça permettra de parser tout en en seule fois)

Code : Tout sélectionner

IF EXIST log.tmp DEL log.tmp
REM on supprime le fichier log.tmp  s'il existe
REM la commande for ne lit pas les lignes vides
FOR /f "tokens=*" %%A IN (log.txt) DO (
ECHO %%A>>log.tmp
)
REM le fichier log.tmp ne contient pas de saut de lignes
IF EXIST log.txt DEL log.txt
REM on supprime le fichier log.txt
REN log.tmp log.txt
REM on renomme le fichier log.tmp en log.txt
normalement ça doit marcher :D

bonne journée
Ce forum vous à aidé? Faites le vivre en vous connectant régulièrement et en répondant au questions posées sur le forum si vous avez une solution
Répondre