Çıktıyı hem konsolda hem de bir dosyada görmek için bu komutu kullanıyorum:
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
Beklediğim kadar iyi çalışmıyor ve bazı sorularım var:
- Stderr'ı bir dosyaya nasıl yeniden yönlendirebilirim?
Çıktı çok garip çalışıyor. Bazı komutlar için metin yazdırılır ve konsol / dosya güncellenir. Diğer bazı komutlar için metin yazdırıldığında çıktı güncellenmiş gibi görünüyor (tee olmadan komutları çalıştırıyorum ve ne yazması gerektiğini biliyorum). Bu gecikme bu tişeyi neredeyse işe yaramaz hale getirir - ya bazı kritik hatalar yazdırılacaksa, komutu durdurmam gerekiyor, ama çok geç olana kadar hiçbir şey görmeyeceğim?
Bazı komutlar için çıktı yalnızca tam komut yapıldıktan sonra yazdırılır.
- Ayrıca, komut kullanıcı girişi istese bile, konsol / dosya çıkışı boş! Bu komut için ne beklediğini biliyorum ve gerekli metni körü körüne yazdırdı ve işe yaradı, ancak diğerleri için - çıktı olmadan, komut girişimi beklerken bir şeyin sonsuz olmasını beklerim!
Bu sorunların çözümü var mı? Değilse, PowerShell'deki bu tee şey tamamen işe yaramaz.