Выводим и сохраняем данные одновременно в PowerShell
Иногда при работе в PowerShell нужно не только вывести результат на экран, но и сразу сохранить его в файл или переменную — без повторного выполнения команды. Для этого идеально подходит команда Tee-Object
.
Она «раздваивает» поток данных: часть отправляется дальше по конвейеру (или на экран), а копия — сохраняется в файл или переменную. Это особенно полезно при логировании, отладке или сборе промежуточных результатов.
Примеры использования:
1. Сохранить вывод команды в файл и одновременно увидеть его в консоли:
Get-Process | Tee-Object -FilePath processes.txt
Выведет список процессов в консоль и запишет его в processes.txt
.
2. Сохранить данные в переменную для дальнейшей обработки:
Get-Service | Where-Object Status -eq 'Running' | Tee-Object -Variable runningServices
Результат отобразится в консоли, а также будет доступен в переменной $runningServices
.
3. Комбинирование с другими командами:
Get-ChildItem *.log | Tee-Object -FilePath logs_list.txt | Measure-Object -Property Length -Sum
Сохранит список .log-файлов в файл и посчитает их общий размер.
#кмд @pcTeapot