Comment tuer l'erreur standard dans un fichier en dos (fichier batch)?
-
28-10-2019 - |
Question
Comment tuer une erreur standard dans un fichier dans un fichier DOS Batch? Piping en utilisant >>
Seule la sortie standard et l'erreur standard va toujours à la console.
Détails de mon problème:
J'exécute Winrar via la ligne de commande, dans une sauvegarde quotidienne automatisée. Et l'exemple suivant tue la sortie de Winrar, mais pas la sortie d'erreur qui est ce que je veux le plus, pour winraroutput.txt
:
RAR.exe a -esh -r "E:\backup.rar" "D:\*.*" >> winraroutput.txt
Le problème est parfois que les fichiers sont utilisés et quand ils le sont, je veux savoir qu'ils ont été manqués dans les archives et l'enregistrer dans un .txt
fichier à côté de chacun .rar
Fichier au cas où nous aurons jamais à y retourner. Les fichiers manquants sont facilement remplacés par la réinstallation des programmes, il n'est donc pas grave de les remplacer, tant que nous savons qu'ils manquent. Ce ne sont donc que des informations qui seraient formidables à savoir, pas nécessaires, en cas de besoin.
Comment puis-je sortir uniquement la sortie d'erreur standard à la .txt
le fichier et, si possible mais pas nécessaire, laissez la sortie régulière à la console?
Points bonus:
Points bonus si vous pouvez me dire comment supprimer le fichier s'il est vide (pas d'erreurs)! Demandé ici: Comment détecter (et supprimer) un fichier s'il est vide à l'aide d'un fichier de lots Windows?.
La solution
Essaye ça:
command.exe 2>file.txt
Ou si vous préférez ne pas voir d'erreurs, envoyez-la à Nul:
command.exe 2>nul
Cela devrait laisser Std :: cout sur la console.