Page 1 sur 1

Comment logger la réponse d'une commande DOS

Posté : 24 mars 2010 15:53
par Toto
Je souhaiterait logger dans un fichier la réponse d'une commande "TASKKILL" mais ça ne fonctionne pas avec la procédure habituelle :

TASKKILL /IM MonAppli.exe >> C:\Toto.log

(le fichier "Toto.log" est bien créé ou modifié mais il reste vierge, il ne contient ni le message "Opération réussie : le processus "MonAppli.exe" de PID 3564 a été arrêté." ni le message "Erreur : le processus "MonAppli.exe" est introuvable.")


alors que ça fonctionne (partiellement) pour une commande "XCOPY" :

XCOPY "Source" "Destination" >> C:\Toto.log

(le fichier "Toto.log" est bien créé ou modifié, il contient le message "0 fichier(s) copié(s)" mais il ne contient pas par exemple le message réponse qui précède "Fichier introuvable - Source" !!!)

J'ai essayé aussi d'exécuter un premier batch "Kill1.bat" contenant la commande "cmd /k Kill2.bat" qui appelle le second batch "Kill2.bat" contenant ma commande "TASKKILL /IM MonAppli.exe >> C:\Toto.log" mais pas mieux !!!

Please Help !!!

Re: Comment logger la réponse d'une commande DOS

Posté : 24 mars 2010 19:56
par Laddy
Bonjour
vérifie que taskkill est bien présent sur ton systeme

ensuite pour xcopy si mes souvenirs sont bons il faut utiliser les errorlevel pour gérer les erreurs.

Re: Comment logger la réponse d'une commande DOS

Posté : 30 juin 2010 17:59
par Fylhan
Le double chevron >> redirige la sortie standard (stdout), et non la sortie d'erreur (stderr)
1 : c'est la stdout
2 : c'est la stderr
Du coup, si tu veux récupérer seulement les erreurs :

Code : Tout sélectionner

TASKKILL /IM MonAppli.exe 2>> C:\Toto.log
Si tu veux récupérer les 2 :

Code : Tout sélectionner

TASKKILL /IM MonAppli.exe >> C:\Toto.log 2>&1
En gros cette dernière commande redirige le résultat de "TASKKILL /IM MonAppli.exe" vers ton fichier de log, et redirige la stderr vers la stdout. Donc les messages de la stderr vont aussi se retrouver dans ton fichier de log.

Logiquement c'est ça ! Bon courage