在powershell中,有没有办法将输出传递给另一个脚本?

时间:2013-10-03 23:54:29

标签: powershell piping

我有一个脚本将输出写入日志文件以及控制台。我正在运行命令Add-WindowsFeatures ...我想获取此命令的输出并将其传递给我的脚本。有可能吗?

1 个答案:

答案 0 :(得分:4)

绝对。您只需要在param语句中包含CmdletBinding属性。然后,向您的某个参数添加一个属性,该参数详细说明管道输入绑定到参数的方式。例如,将它放在c:\ temp \ get-extension.ps1:

[CmdletBinding()]
Param(
[parameter(Mandatory=$true,
            ValueFromPipeline=$true)][System.IO.FileInfo[]]$file
)

process {
  $file.Extension
}

然后,你可以这样做:

dir -File| C:\temp\get-extension.ps1

更新以解决最新评论:我猜测将参数类型设置为[object[]]$stuff而非[fileinfo[]]并将

设置为

$stuff | out-file c:\logs\logfile.txt  #or wherever you want
过程块中的

会让你关闭。