当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] PowerShell:创建接受管道输入的函数

作者:精品下载站 日期:2024-12-14 07:37:13 浏览:12 分类:玩电脑

PowerShell:创建接受管道输入的函数


您已经创建了一个函数,现在想要启用管道功能?是的?然后继续阅读。在这篇博文中,我将向您展示如何构建接受管道输入的函数的示例。让我们深入了解一下。

目标

我们想要实现的一切都可以在这个屏幕截图中看到。我们的函数 Test-PipelineInput 接受通过 PowerShell 管道的对象。此功能称为 PipelinInput。

[玩转系统] PowerShell:创建接受管道输入的函数

创建接受管道输入的高级函数

下面是一个关于如何实现这一目标的示例。

function Test-PipelineInput {

param
(
    [Parameter(ValueFromPipeline=$true)]
    $Text
)

Begin {}

Process {
Write-Host "$Text"
}

End {}
}

最重要的是带有开始、处理和结束的代码块。您需要此代码片段来启用管道输入。此外,您需要在第5行中添加管道语句。

包起来:

  • 添加开始流程结束
  • 输入参数定义ValueFromPipline=$true

重要信息

但是等一下,有人说这也可以在没有 Begin、Process 和 End 的情况下工作。嗯,这个人错了。我会告诉你原因。

假设以下代码没有 Begin、Process 和 End。

# This code is wrong!

function Test-PipelineInput {

    param
    (
        [Parameter(ValueFromPipeline=$true)]
        $Text
    )

    Write-Host "$Text"
    
    }

该函数创建以下输出:

[玩转系统] PowerShell:创建接受管道输入的函数

都很好。这证明它可以在没有 Begin、Process 和 End 块的情况下完成。 一点也不。

考虑以下场景:

[玩转系统] PowerShell:创建接受管道输入的函数

UPS。 第一个语句去了哪里?它没有显示。为什么?

如果不使用 Begin、Process 和 End,PowerShell 会将已通过管道的对象视为引用结束块的对象。因此,不会显示第一个语句。

对于我们的第一个正确的函数来说,情况有所不同:

[玩转系统] PowerShell:创建接受管道输入的函数

要展示什么。下次见。

你喜欢那些已经通过管道的谚语吗?

那么,所有 6 条成功规则都可以通过下面的代码下载。他们可能会帮助您在职业生涯中取得进步。

Start-BitsTransfer `
-Source https://patrick6649.files.wordpress.com/2018/05/arnolds-6-rules-of-success.jpg `
-Destination (Join-Path -Path $home -ChildPath Downloads)
Start-Process (Join-Path -Path $home -ChildPath Downloads\arnolds-6-rules-of-success.jpg)

?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯