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