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 stderr également vers un fichier?
La sortie fonctionne très étrange. Pour certaines commandes, il y a un énorme délai 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 imprimer). Ce délai rend ce tee-shirt 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'après l'exécution de la commande complète.
- 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 d'autres - sans sortie, j'attendrai quelque chose à l'infini tandis que la commande attendra mon entrée!
Existe-t-il des solutions à ces problèmes? Sinon, ce truc dans PowerShell est complètement inutile.