Rediriger stdout et stderr dans un fichier de commandes
Est-il un moyen de rediriger stdout et stderr pour un fichier de commandes à partir de l'intérieur.
J'imagine quelque chose comme
set STDOUT=stdout.log
echo Some text
a.exe
b.exe
c.exe
Où les deux Some text
, et la sortie de a.exe
, b.exe
et c.exe
serait aller à stdout.log
Est-ce possible?
OriginalL'auteur sashoalm | 2012-11-15
Vous devez vous connecter pour publier un commentaire.
Il est plus efficace de rediriger une fois pour l'ensemble de la collection de commandes que c'est la redirection (avec append) chaque commande individuelle. Il faut du temps pour initialiser la redirection. Il peut ne pas être sensible pour quelques redirigé commandes, mais si c'est fait dans une boucle avec un nombre d'itérations, il peut devenir très importante.
Une méthode consiste à placer la totalité du bloc de redirigé les commandes à l'intérieur de parenthèses et de rediriger l'extérieur des parenthèses
Une autre option est de mettre votre commande dans un sous-programme et de rediriger l'APPEL
OriginalL'auteur dbenham
Oui, vous avez besoin de rediriger et ajouter stdout à votre fichier (
1>> %STDOUT%
) et connecter la sortie stderr vers stdout (2>&1
):@EitanT correctement noté que votre question n'implique pas nécessairement l'écriture à la fois stderr et stdout dans le même fichier. Donc, pour être complet, voici une version de l'écriture dans des fichiers séparés:
stderr
àstdout
... si vous voulez, vous pouvez les rediriger vers des journaux séparés.Bien sûr, vous n'avez pas à, mais je pensais qu'il voulait faire exactement cela: ...pour rediriger stdout et stderr...
Oui, de rediriger tous les deux, mais pas nécessairement au même endroit. Jamais l'esprit, je suis juste en coupant les cheveux en quatre...
OriginalL'auteur zb226