Erreur XCOPY comment comprendre ?

Le
Gloops
Bonjour tout le monde,

J'ai réalisé une sauvegarde avec XCOPY, en enregistrant la sortie
standard dans un fichier (merci à Pierre Torris), et la sortie d'erreur=
s
dans un autre.

Le fichier de la sortie d'erreurs contient ceci (et rien que ceci) :

Erreur lors de la création du fichier - Le fichier spécifié est int=
rouvable.

Le fichier de la sortie standard ne comporte pas le mot erreur (pas plus =

que le mot "lors"), alors que lorsque j'avais fait mes tests lors de la
création du batch, les erreurs apparaissaient à la fois en sortie
standard et en sortie d'erreurs.

Or, je trouve bien le compte de fichiers de compte-rendu. Les heures du
fichier de compte-rendu d'erreurs et du fichier de compte-rendu de
sauvegarde sont distantes d'un quart d'heure environ, ce qui ne paraît =

pas absurde si un des premiers fichiers copiés était verrouillé (ap=
rès
tout mon antivirus semble faire une fixette sur les mails comportant un
renvoi sur une pièce jointe tel que pratiqué il y a quatre ans, alors=

même que la pièce jointe est effacée depuis longtemps, ce qui a ten=
dance
à verrouiller des fichiers).

J'ai un peu de mal à interpréter tout ça. Est-ce que XCOPY n'enverr=
ait
les messages d'erreur sur la sortie standard que dans certains cas ?

Si c'est bien ça, à moins de comprendre exactement dans quels cas
l'erreur ne part que sur la sortie d'erreurs, je ne suis pas bien
certain qu'on puisse faire mieux avec XCOPY, il faudra faire la
comparaison des sommes de contrôle après la sauvegarde (ce qui somme =

toute serait plus rigoureux).

Une autre piste d'interprétation, peut-être ?



SAUV.BAT :
'

prompt $q$q%username%$q$q $d $t$h$h$h$_$c%userprofile%$f$_$p$g

call "C:Documents and SettingsBibiMyselfMes documentssubs.bat"

REM subs.bat appelle subst pour initialiser S: sur le disque externe

@IF NOT EXIST S:. ECHO DISQUE CIBLE NON DISPONIBLE

@IF NOT EXIST S:. GOTO FIN

XCOPY /E /C /M /H /Y /R /EXCLUDE:c:excl "C:Documents and Settings*.*" =

"S:Documents and Settings*.*" 2>S:err |"C:Programmescmdlogcmdlog"
"S:log"

"C:Documents and SettingsBibiMyselfMes documentsVBSNomErreurs.vbs"
log S:

"C:Documents and SettingsBibiMyselfMes documentsVBSNomErreurs.vbs"
err S:

:FIN

@Pause



NomErreurs.VBS :
'

'Renommer un fichier avec la date et l'heure
'En premier paramètre le nom du fichier, qui ne doit pas avoir d'extens=
ion
'En deuxième paramètre le chemin d'accès
'Pendant le traitement,
'au nom initial sont ajoutés la date et l'heure, un point et l'extensio=
n txt

Dim NouveauNom
Set objArgs = WScript.Arguments
set FileObject = createobject("scripting.filesystemobject")
MsgBox objArgs(1) + objArgs(0)
Set F = FileObject.GetFile(objArgs(1) + objArgs(0))
'MsgBox DatePart("yyyy", F.DateLastModified)
'MsgBox DatePart("m", F.DateLastModified)
'MsgBox DatePart("d", F.DateLastModified)
NouveauNom = objArgs(0) + Droite(DatePart("yyyy", F.DateLastModified), =

4) + Droite(DatePart("m", F.DateLastModified), 2) + Droite(DatePart("d", =

F.DateLastModified), 2)+Droite(DatePart("h", F.DateLastModified),
2)+Droite(DatePart("n", F.DateLastModified), 2) + ".txt"
MsgBox NouveauNom
F.Name = NouveauNom

Function Droite(Chaine, NbChiffres)
Droite = Right("00000" & Chaine, NbChiffres)
End Function
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Roger LEDIG
Le #2990671
Bonjour tout le monde,

J'ai réalisé une sauvegarde avec XCOPY, en enregistrant la sortie
standard dans un fichier (merci à Pierre Torris), et la sortie d'erreurs
dans un autre.

Le fichier de la sortie d'erreurs contient ceci (et rien que ceci) :

Erreur lors de la création du fichier - Le fichier spécifié est
introuvable.

Le fichier de la sortie standard ne comporte pas le mot erreur (pas plus
que le mot "lors"), alors que lorsque j'avais fait mes tests lors de la
création du batch, les erreurs apparaissaient à la fois en sortie
standard et en sortie d'erreurs.

Or, je trouve bien le compte de fichiers de compte-rendu. Les heures du
fichier de compte-rendu d'erreurs et du fichier de compte-rendu de
sauvegarde sont distantes d'un quart d'heure environ, ce qui ne paraît
pas absurde si un des premiers fichiers copiés était verrouillé (après
tout mon antivirus semble faire une fixette sur les mails comportant un
renvoi sur une pièce jointe tel que pratiqué il y a quatre ans, alors
même que la pièce jointe est effacée depuis longtemps, ce qui a tendance
à verrouiller des fichiers).

J'ai un peu de mal à interpréter tout ça. Est-ce que XCOPY n'enverrait
les messages d'erreur sur la sortie standard que dans certains cas ?

Si c'est bien ça, à moins de comprendre exactement dans quels cas
l'erreur ne part que sur la sortie d'erreurs, je ne suis pas bien
certain qu'on puisse faire mieux avec XCOPY, il faudra faire la
comparaison des sommes de contrôle après la sauvegarde (ce qui somme
toute serait plus rigoureux).

Une autre piste d'interprétation, peut-être ?



SAUV.BAT :
'======== >
prompt $q$q%username%$q$q $d $t$h$h$h$_$c%userprofile%$f$_$p$g

call "C:Documents and SettingsBibiMyselfMes documentssubs.bat"

REM subs.bat appelle subst pour initialiser S: sur le disque externe

@IF NOT EXIST S:. ECHO DISQUE CIBLE NON DISPONIBLE

@IF NOT EXIST S:. GOTO FIN

XCOPY /E /C /M /H /Y /R /EXCLUDE:c:excl "C:Documents and Settings*.*"
"S:Documents and Settings*.*" 2>S:err |"C:Programmescmdlogcmdlog"
"S:log"

"C:Documents and SettingsBibiMyselfMes documentsVBSNomErreurs.vbs"
log S:

"C:Documents and SettingsBibiMyselfMes documentsVBSNomErreurs.vbs"
err S:

:FIN

@Pause



NomErreurs.VBS :
'============== >
'Renommer un fichier avec la date et l'heure
'En premier paramètre le nom du fichier, qui ne doit pas avoir d'extension
'En deuxième paramètre le chemin d'accès
'Pendant le traitement,
'au nom initial sont ajoutés la date et l'heure, un point et l'extension
txt

Dim NouveauNom
Set objArgs = WScript.Arguments
set FileObject = createobject("scripting.filesystemobject")
MsgBox objArgs(1) + objArgs(0)
Set F = FileObject.GetFile(objArgs(1) + objArgs(0))
'MsgBox DatePart("yyyy", F.DateLastModified)
'MsgBox DatePart("m", F.DateLastModified)
'MsgBox DatePart("d", F.DateLastModified)
NouveauNom = objArgs(0) + Droite(DatePart("yyyy", F.DateLastModified),
4) + Droite(DatePart("m", F.DateLastModified), 2) + Droite(DatePart("d",
F.DateLastModified), 2)+Droite(DatePart("h", F.DateLastModified),
2)+Droite(DatePart("n", F.DateLastModified), 2) + ".txt"
MsgBox NouveauNom
F.Name = NouveauNom

Function Droite(Chaine, NbChiffres)
Droite = Right("00000" & Chaine, NbChiffres)
End Function




Bonjour

Mal programmé !

Aucune erreur chez moi !

on peut faire des essais jusqu'à cela marche !


le paramètres /? donne des aides


Bon courage

Cordialement

Roger

Gloops
Le #2999241
Roger LEDIG a écrit, le 13/04/2008 18:07 :
Bonjour

Mal programmé !


C'est bien parce que j'envisageais cette hypothèse que j'ai mis mon cod e
dans le message :)


Aucune erreur chez moi !


Donc, aucune possibilité de tester la gestion d'erreurs :)

Comme c'est la gestion d'erreurs que j'ai programmé, et uniquement la
gestion d'erreurs, pourrais-tu expliciter ce que tu entends par "mal
programmé" ?


on peut faire des essais jusqu'à cela marche !


En fait, ça marche bien depuis un certain nombre de mois, et puis
voilà-t-y pas qu'aujourd'hui se produit une erreur mal gérée, ce qu e
j'aimerais comprendre.


Lorsque j'ai écrit mon batch, j'ai pris soin de laisser se produire des
erreurs (il suffit pour cela de retirer une ligne dans le fichier
d'exclusions), de façon à m'assurer que le nom du fichier non sauvega rdé
apparaissait dans les compte-rendus. Or, aujourd'hui ce n'est plus le
cas, je me demande si l'apparition du message d'erreur dans la sortie
standard est conditionnelle.

En tout cas, chez moi, la commande
XCOPY /? | find "sortie standard"

ne retourne rien.

Roger LEDIG
Le #2999211
Roger LEDIG a écrit, le 13/04/2008 18:07 :
Bonjour

Mal programmé !


C'est bien parce que j'envisageais cette hypothèse que j'ai mis mon code
dans le message :)


Aucune erreur chez moi !


Donc, aucune possibilité de tester la gestion d'erreurs :)

Comme c'est la gestion d'erreurs que j'ai programmé, et uniquement la
gestion d'erreurs, pourrais-tu expliciter ce que tu entends par "mal
programmé" ?


on peut faire des essais jusqu'à cela marche !


En fait, ça marche bien depuis un certain nombre de mois, et puis
voilà-t-y pas qu'aujourd'hui se produit une erreur mal gérée, ce que
j'aimerais comprendre.


Lorsque j'ai écrit mon batch, j'ai pris soin de laisser se produire des
erreurs (il suffit pour cela de retirer une ligne dans le fichier
d'exclusions), de façon à m'assurer que le nom du fichier non sauvegardé
apparaissait dans les compte-rendus. Or, aujourd'hui ce n'est plus le
cas, je me demande si l'apparition du message d'erreur dans la sortie
standard est conditionnelle.

En tout cas, chez moi, la commande
XCOPY /? | find "sortie standard"

ne retourne rien.




Bonjour

Juste une info

Sur des partions NTFS, il y a des méta-donnés, il faut sauvegarder sur du NTFS.

Et pas d'erreurs est préférable que vouloir en trouver.

Cordialement

Roger


Publicité
Poster une réponse
Anonyme