我有一個腳本可以接受多個參數,並且已經通過適當的幫助評論(例如.SYNOPSIS,.DESCRIPTION,.PARAMETER)進行了記錄。我的組織中的幾個不同的用戶將使用這個PowerShell腳本,一些人知道PowerShell,並將使用特定的參數值從PowerShell中調用它,一些人不知道PowerShell,只需在Windows資源管理器中右鍵單擊腳本文件並選擇Run with PowerShell(所以參數將使用它們的默認值)。編寫等效PowerShell腳本和函數的最佳實踐
我的難題是什麼是在沒有大量重複代碼的情況下在PowerShell中執行此操作的最佳方法。我看到它的方式,這些是我的選擇:
1 - 只需編寫一個爲所有參數提供默認值的DoStuff.ps1腳本。這使得它可以直接從Windows資源管理器中運行,但感覺笨重對於想用它作爲自己的腳本功能PowerShell的用戶,因爲不是寫:
Do-Stuff param1 param1
他們會做:
.\DoStuff.ps1 param1 param2
2 - 在DoStuff.ps1中,將其執行的操作移動到DoStuff函數中,並且在函數聲明之後使用傳入腳本的參數調用DoStuff函數。這仍然允許從Windows資源管理器運行腳本,以及開發人員將腳本點到源自己的腳本,以便他們可以訪問該功能。缺點是,當開發人員點擊源腳本時,腳本將使用默認參數調用該函數(除非我們允許他們向觸發該函數的腳本提供可選的Switch參數)。儘管如此,這意味着我將不得不復制所有的腳本幫助文本,以便爲腳本和函數(描述,參數描述等)顯示。
我想不出任何其他選擇。理想情況下,我可以在.ps1文件中編寫函數,並使用「default」關鍵字標記函數,以便在調用腳本時默認運行該函數;但我不認爲PowerShell提供了這樣的東西。
您認爲在這種情況下最好的方法是什麼?有什麼我可以忽略或不知道的嗎?謝謝。