You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让PowerShell函数支持管道输入且无需参数,保留默认行为?

解决PowerShell函数接收管道输入(无需显式参数)

要让你的Hello函数在接收管道输入时输出传递的内容,无需定义显式参数,可以利用PowerShell内置的$input自动变量——它会自动收集通过管道传递给函数的输入内容。

修改后的函数代码:

Function Hello(){
    # 判断是否存在管道输入
    if ($input.MoveNext()) {
        Write-Host $input.Current
    }
    else {
        # 无管道输入时输出默认值
        Write-Host "Hello, World"
    }
}

测试验证

  • 单独调用(无管道输入):
Hello

输出:Hello, World

  • 通过管道传递内容:
$MyString = "Something Else please"
$MyString | Hello

输出:Something Else please

补充说明

$input是一个枚举器对象,MoveNext()方法用于检查是否有可读取的管道输入;如果存在输入,Current属性会返回当前的输入值。如果需要处理多条管道输入(比如数组),可以用$input | ForEach-Object { ... }来遍历所有内容。

内容的提问来源于stack exchange,提问作者hellen_dorandt89

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 16:56:02