Tee-Object

将命令输出保存在文件或变量中,并将其显示在控制台中。

语法

Tee-Object [-FilePath] <string> [-InputObject <psobject>] [<CommonParameters>]

Tee-Object -Variable <string> [-InputObject <psobject>] [<CommonParameters>]

说明

Tee-Object cmdlet 向两个方向(类似字母“T”)发送命令的输出。它将输出存储在文件或变量中,同时通过管道向后发送。如果 Tee-Object 是管道中的最后一个命令,则会在控制台中显示该命令的输出。

参数

-FilePath <string>

指定 cmdlet 将对象存储于其中的文件。接受可解析为单个文件的通配符。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

false

是否接受通配符?

false

-InputObject <psobject>

指定 cmdlet 的对象输入。请输入包含对象的变量,或者键入可获取对象的命令或表达式。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByValue)

是否接受通配符?

false

-Variable <string>

将对输入对象的引用赋予指定的变量。

是否为必需?

true

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

System.Management.Automation.PSObject

可以通过管道将对象重定向到 Tee-Object。

输出

System.Management.Automation.PSObject

Tee-Object 返回它重定向的对象。

说明

您也可以使用 Out-File cmdlet 或重定向运算符,它们都会将输出保存在一个文件中,但是不会通过管道向后发送。

Tee-Object 在写入到文件时使用 Unicode 编码。因此,在采用不同编码的文件中,可能无法正确设置输出内容的格式。若要指定编码,请使用 Out-File cmdlet。

示例 1

C:\PS>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

C:\PS>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 返回的默认信息。





另请参阅

概念

about_Redirection
Select-Object