2016-01-21 61 views
0

有沒有辦法將參數從一個函數複製到我當前的函數'動態'?動態複製命令參數

例:

Function CopyVerify-Item { 
    DynamicParam { 

    # Get all the parameters from Copy-Item 

    } 
    Process { 

    Copy-Item $PSBoundParameters 
    # Do my extra code here to verify the copy 

    } 
} 

我需要它的精確副本,帶開關的,強制性的,ParameterSets ..

我想使用這個新功能,酷似原來的一個,除了包括函數中額外的代碼。

**這是我在做什麼愚蠢的/純例子,但在現實中,這是一個複雜得多..和不希望有複製每次每個都是我 參數功能..和一些功能 動態創建..所以我只是保持這個例子非常簡單的 。

+0

你有沒有考慮過使用ProxyCommand?它至少可以幫助您生成您希望避免產生的鍋爐板代碼。 http://blogs.msdn.com/b/powershell/archive/2009/01/04/extending-and-or-modifing-commands-with-proxies.aspx –

回答

0

AFAIK功能不支持無聯繫。您需要複製/粘貼通用參數/代碼。

如果您對C#感到滿意,您可以使用二進制模塊創建cmdlet。然後你可以使用一個抽象類作爲你的通用參數。您可能必須爲屬性創建簡單的覆蓋 - 「包裝器」,以便將它們包括在ParameterSets中。

Ex。

public abstract class FrodeCommandBase : PSCmdlet 
{ 
    #properties, getters setters etc. 
} 

public class GetFrodeCommand: FrodeCommandBase 
{ 
} 

您可能必須爲屬性創建簡單的覆蓋 - 「包裝」,以將它們包括在ParameterSets中。