2012-02-21 2 views
0

Comment puis-je rediriger l'erreur standard vers un fichier dans un fichier batch DOS? Tuyauterie utilisant >> seulement les tuyaux la sortie standard et l'erreur standard va toujours à la console.Comment puis-je corriger une erreur standard dans un fichier sous DOS (fichier batch)?

Détails de ma question:

Je courais WinRAR via la ligne de commande, dans une sauvegarde quotidienne automatisée. Et les tuyaux d'exemple suivant la sortie de WinRar, mais pas la sortie d'erreur qui est ce que je veux le plus, à winraroutput.txt:

RAR.exe a -esh -r "E:\backup.rar" "D:\*.*" >> winraroutput.txt 

La question est parfois des fichiers sont utilisés et quand ils sont je veux savoir qu'ils ont manqué à l'archive et enregistrer dans un fichier .txt à côté de chaque fichier .rar au cas où nous devrons revenir en arrière. Les fichiers manquants sont facilement remplacés en réinstallant les programmes, donc ce n'est pas très compliqué de les remplacer, tant que nous savons qu'ils sont manquants. Ce n'est donc qu'une information qu'il serait bon de savoir, pas nécessaire, en cas de besoin.

Comment est-ce que je produis juste la sortie d'erreur standard au fichier .txt et, si possible mais pas nécessaire, laissez la sortie régulière à la console?

points de bonus:

points de bonus si vous pouvez me dire comment supprimer le fichier si elle est vide (aucune erreur)! Demandé ici: How do I Detect (and Delete) a File if it is Empty using a Windows Batch File?.

Répondre

3

Essayez ceci:

command.exe 2>file.txt 

Ou si vous préférez ne pas voir toutes les erreurs, l'envoyer à NUL:

command.exe 2>nul 

Cela devrait laisser std :: Cout sur la console.

+0

Excellent. C'est la réponse. Je vous remercie. Je dois attendre 5 minutes pour l'indiquer en raison de l'insécurité de StackOverflow à mon sujet. :) – Xonatron

+0

Points bonus si vous pouvez me dire comment supprimer le fichier s'il est vide! :) – Xonatron

Questions connexes