Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Joindre message d'erreur dans résultat d'un fichier bat ?

2 réponses
Avatar
Vincent J.
Bonjour,

Sur un serveur, j'ai un .bat qui me copie certains répertoires durant la
nuit sur un disque amovible.

Pour la copie de ces répertoires, j'utilise la syntaxe:
xcopy /D /E /I /H /R /Y c:\toto\*.* e:\toto\ >> c:\save.log

Un "journal" est ainsi généré lors de la copie où je peux voir le nombre
ainsi que le nom des fichiers copiés.

Mon seul soucis c'est que la synthaxe >>c:\save.log ne me répercute pas les
messages d'erreurs lors de la copie.
Par exemple, j'ai actuellement le disque dur amovible qui est plein.
Dans le c:\save.log, il ne me répercute juste le fait qu'il n'y a pas de
fichier copié.
Alors que si je passe par cmd, avec la commande xcopy /D /E /I /H /R /Y
c:\toto\*.* e:\toto, là il me dit 0 fichiers copiés mais également "Espace
disque insuffisant".

Comment faire pour qu'il me récupere l'info "Espace disque insuffisant" sur
mon fichier c:\save.log ?
Si la chose est possible ?

MErci
Vincent

2 réponses

Avatar
NyGL
Salut,

la syntaxe
commande>>fichier.log
ou
commande 1>>fichier.log
ne renvoie que la sortie standard vers le fichier. La sortie d'erreur n'est
pas renvoyée et c'est pour ça qu'elle s'affiche sur la console.

Pour renvoyer la sortie d'erreur, il faut faire comme suit :
commande 2>>fichier.log
mais cette commande ne renvoie que la sortie d'erreur. Tous les messages de
la ligne de commande sont affichés sur la console.

Pour rediriger les sorties standard et d'erreur il faut procéder de la sorte
:
commande 1>>fichier.log,2>&1

cette commande renvoie la sortie d'erreur vers la sortie standard et la
sortie standard vers le fichier.
Notez qu'on ne peut pas renvoyer à la fois la sortie d'erreur et la sortie
standard vers le fichier. En effet, le même fichier ne peut pas être ouvert
2 fois en écriture.


Bon script.

NyGL

"Vincent J." wrote in message
news:%234%
Bonjour,

Sur un serveur, j'ai un .bat qui me copie certains répertoires durant la
nuit sur un disque amovible.

Pour la copie de ces répertoires, j'utilise la syntaxe:
xcopy /D /E /I /H /R /Y c:toto*.* e:toto >> c:save.log

Un "journal" est ainsi généré lors de la copie où je peux voir le nombre
ainsi que le nom des fichiers copiés.

Mon seul soucis c'est que la synthaxe >>c:save.log ne me répercute pas
les messages d'erreurs lors de la copie.
Par exemple, j'ai actuellement le disque dur amovible qui est plein.
Dans le c:save.log, il ne me répercute juste le fait qu'il n'y a pas de
fichier copié.
Alors que si je passe par cmd, avec la commande xcopy /D /E /I /H /R /Y
c:toto*.* e:toto, là il me dit 0 fichiers copiés mais également "Espace
disque insuffisant".

Comment faire pour qu'il me récupere l'info "Espace disque insuffisant"
sur mon fichier c:save.log ?
Si la chose est possible ?

MErci
Vincent



Avatar
Vincent J.
Merci pour tes précisions forts interressantes !

Dès que je test cela dès que possible.

Merci
Vincent