PowerShell et Tee
J'utilise cette commande pour voir la sortie à la fois dans la console et dans un fichier:
powershell -command "my_command_1 | tee ('logs{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))"
powershell -command "my_command_2 | tee ('logs{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))"
# etc
Cela ne fonctionne pas aussi bien que prévu et j'ai quelques questions:
- Comment rediriger également stderr vers un fichier ?
-
La sortie fonctionne très étrange. Pour certaines commandes, il y a un délai énorme entre l'impression du texte et la mise à jour de la console /du fichier. Pour certaines autres commandes, la sortie semble mise à jour lorsque le texte est imprimé (j'exécute des commandes sans tee et je sais ce qu'il doit faire imprimer). Ce retard rend ce tee presque inutile - que se passe-t-il si une erreur critique est imprimée, je dois donc arrêter la commande, mais je ne verrai rien avant qu'il ne soit trop tard?
Pour certaines commandes, la sortie n'est imprimée qu'une fois la commande complète terminée.
- De plus, même si la commande demande une entrée utilisateur, la sortie console/fichier est vide ! Pour cette commande, je sais ce qu'elle attend et j'imprime aveuglément le texte nécessaire et cela a fonctionné, mais pour les autres - sans sortie, j'attendrai quelque chose pour se produit à l'infini pendant que la commande attendra mon entrée!
Existe-t-il des solutions à ces problèmes ? Sinon, ce tee-shirt dans PowerShell est complètement inutile.