【问题标题】:Copy parameter sets from a CmdLet to new CmdLet将参数集从 CmdLet 复制到新的 CmdLet
【发布时间】:2014-06-18 20:14:33
【问题描述】:

我想为Write-Error 创建一个替换函数。为此,它必须支持与原始 CmdLet 相同的参数集。

我可以通过使用查看Write-Error支持的参数集

Get-Help Write-Error

或在线technet

名字 写错误

概要 将一个对象写入错误流。

语法 写入错误 [-Message] [-Category ] [-CategoryActivity ] [-CategoryReason ] [-CategoryTargetName ] [-CategoryTargetType ] [-ErrorId ] [-RecommendedAction ] [- 目标对象] []

Write-Error [-Category <ErrorCategory>] [-CategoryActivity <String>] [-CategoryReason <String>] [-CategoryTargetNam
e <String>] [-CategoryTargetType <String>] [-ErrorId <String>] [-Message <String>] [-RecommendedAction <String>] [-
TargetObject <Object>] -Exception <Exception> [<CommonParameters>]

Write-Error [-CategoryActivity <String>] [-CategoryReason <String>] [-CategoryTargetName <String>] [-CategoryTarget
Type <String>] [-RecommendedAction <String>] -ErrorRecord <ErrorRecord> [<CommonParameters>]

但是我怎样才能轻松地创建一个使用完全相同的参数集(包括所需参数和默认值)的新 PowerShell 脚本 CmdLet?

【问题讨论】:

  • [cmdletbinding()] 会给你一些,但不是全部。您必须在 C# 中为您想要的功能编写一个 cmdlet。

标签: powershell parameters powershell-cmdlet


【解决方案1】:

这是代理功能的完美用例。您可以使用命令元数据创建代理功能:

$command = Get-Command Write-Error
$proxy = [System.Management.Automation.ProxyCommand]::Create($command)

一些有助于解释的链接:

还有 PowerShell 模块 (pspx) 可以帮助您入门。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 2014-11-09
    • 2019-02-24
    • 2010-12-05
    相关资源
    最近更新 更多