2009-01-27 10 views
34

Je veux capturer les erreurs d'un script dans un fichier plutôt qu'à l'écran.Comment capturer stderr sous Windows/DOS?

En * nix, cela se fait avec la redirection de stderr, généralement

echo "Error" 2> errorfile.log 

Comment puis-je le faire dans un script CMD sous Windows?

Répondre

43

Par exemple:

PSKILL NOTEPAD >output.txt 2>&1 

Ceci dirigera stdout et stderr à un nom de fichier sortie.txt.

Voir Underused features of Windows batch files pour plus de détails.

+7

Si vous voulez les rediriger vers des fichiers séparés, vous pouvez faire 'mycommand> stdout.txt 2> stderr.txt' – Kip

20

Cela devrait fonctionner dans Win32, aussi.

Si vous avez déjà redirigé stdout et que vous souhaitez rediriger stderr vers le même fichier, vous devez utiliser le formulaire spécial 2> &, plutôt que de spécifier deux fois le même fichier. Sinon, vous obtiendrez une erreur "fichier occupé".

+0

Ceci est également couvert dans * [Rediriger stdout et stderr vers un seul fichier] (http://stackoverflow.com/questions/1420965) *. –