Tee-Object
Сохраняет выходные данные команды в файле или переменной, а также отправляет их в конвейер.
Синтаксис
Tee-Object
[-InputObject <PSObject>]
[-FilePath] <String>
[-Append]
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-LiteralPath <String>
[<CommonParameters>]
Tee-Object
[-InputObject <PSObject>]
-Variable <String>
[<CommonParameters>]
Описание
Командлет Tee-Object перенаправляет выходные данные, то есть отправляет выходные данные команды в двух направлениях (например, буква T). Она сохраняет выходные данные команды в файле или переменной, а также отправляет их в конвейер. Если tee-Object является последней командой в конвейере, выходные данные команды отображаются в командной строке.
Примеры
Пример 1. Выходные процессы в файл и консоль
PS C:\> Get-Process | Tee-Object -FilePath "C:\Test1\testfile2.txt"
Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName
------- ------ ----- ----- ----- ------ -- -----------
83 4 2300 4520 39 0.30 4032 00THotkey
272 6 1400 3944 34 0.06 3088 alg
81 3 804 3284 21 2.45 148 ApntEx
81 4 2008 5808 38 0.75 3684 Apoint
...
Эта команда возвращает список процессов, запущенных на компьютере, и отправляет результаты в файл. Так как второй путь не указан, процессы также отображаются в консоли.
Пример 2. Выходные процессы в переменную и Select-Object
PS C:\> Get-Process notepad | Tee-Object -Variable proc | Select-Object processname,handles
ProcessName Handles
----------- -------
notepad 43
notepad 37
notepad 38
notepad 38
Эта команда получает список процессов, выполняющихся на компьютере, и отправляет результат в переменную с именем proc. Затем он передает полученные объекты командлету Select-Object, который выбирает свойства ProcessName и Handles. Обратите внимание, что переменная $proc по умолчанию содержит данные, возвращаемые командлетом Get-Process.
Пример 3. Вывод системных файлов в два файла журнала
PS C:\> Get-ChildItem -Path D: -File -System -Recurse | Tee-Object -FilePath "c:\test\AllSystemFiles.txt" -Append | Out-File c:\test\NewSystemFiles.txt
Эта команда сохраняет список системных файлов в двух файлах журнала, накопительном и текущем файле.
Команда использует командлет Get-ChildItem для рекурсивного поиска системных файлов на диске D:. Оператор конвейера (|) отправляет список в Tee-Object, который добавляет список в файл AllSystemFiles.txt и передает список вниз по конвейеру в командлет Out-File, который сохраняет список в файле NewSystemFiles.txt.
Параметры
-Append
Указывает, что командлет добавляет выходные данные в указанный файл. Без этого параметра новое содержимое заменяет все существующее содержимое файла без предупреждения.
Этот параметр впервые появился в Windows PowerShell 3.0.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FilePath
Указывает файл, в котором этот командлет сохраняет объект в подстановочные знаки, которые разрешены, но должны разрешаться в один файл.
Type: | String |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Указывает объект, который необходимо показать и сохранить. Введите переменную, которая содержит объекты, или команду или выражение, которое возвращает объекты. Вы также можете передать объект в Tee-Object по конвейеру.
При использовании параметра InputObject с Tee-Object вместо отправки результатов команды в Tee-Object значение InputObject , даже если значение является коллекцией, являющейся результатом команды, например InputObject (Get-Process)
,, обрабатывается как один объект.
Так как InputObject не может возвращать отдельные свойства из массива или коллекции объектов, рекомендуется использовать Tee-Object для выполнения операций с коллекцией объектов для тех объектов, которые имеют определенные значения в определенных свойствах, использовать Tee-Object в конвейере, как показано в примерах в этом разделе.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LiteralPath
Указывает файл, в который этот командлет сохраняет объект . В отличие от FilePath значение параметра LiteralPath используется именно в том виде, в котором оно вводится. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки предписывают PowerShell не интерпретировать какие-либо символы как escape-последовательности.
Type: | String |
Aliases: | PSPath |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Variable
Указывает переменную, в которую командлет сохраняет объект . Введите имя переменной без предшествующего знака доллара ($).
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Объекты можно передавать по конвейеру в Tee-Object.
Выходные данные
Tee-Object возвращает объект, который он перенаправляет.
Примечания
- Также можно использовать командлет Out-File или оператор перенаправления. Они сохраняют выходные данные в файле, но не отправляют их по конвейеру.
- Tee-Object использует кодировку Юникод при записи в файлы. В результате выходные данные могут быть неправильно отформатированы в файлах с другой кодировкой. Чтобы указать кодировку, используйте командлет Out-File.