我正在寫一個PowerShell腳本模塊。它所做的第一件事情之一是一些檢查,以確保某些必需的值可用。如果不是,模塊不應該繼續加載和初始化。但是,我不知道模塊自己「移除」的方式。我試着調用remove-module(從模塊內部),但並不奇怪,它沒有工作。有沒有其他方法可以讓模塊自行卸載?PowerShell模塊可以卸載自己
我意識到從模塊外部的腳本執行這些操作是微不足道的。但是我正在編寫這個模塊,以便與其他不太熟悉PowerShell的用戶共享。我想不需要在PLUS模塊中包含另一個腳本,然後向他們解釋「這是一個例外,你不能使用普通的導入模塊,你必須始終記住找到並運行這個其他腳本」 。除此之外,如果用戶僅使用導入模塊(而不是使用額外的腳本),那麼它就沒有用處(因爲他們會合理地期望能夠這樣做)。
嗯,這可能工作。但我認爲它只能在模塊導入時運行的代碼上工作,而不一定是稍後卸載模塊的方式。例如,如果模塊在導入和運行期間運行一些代碼,則可能不會加載模塊。但是,如果您運行導入模塊,然後調用模塊中的某個函數,然後發現模塊應該卸載的內容,我不認爲拋出將允許模塊自行卸載。猜猜我將不得不做一些測試來嘗試。但是,謝謝你的想法嘗試。 – jay
不,你說得對,它只會停止加載,以後不會卸載。我會爭辯說,也許卸載模塊並不是最好的方法 - 在模塊中調用函數會將該函數從使用中移除似乎很奇怪!有點像敲門造成房屋消失......當然,還有什麼會刪除模塊實現?你會重新加載它,再試一次,同樣的事情會發生。也許最好把模塊置於故障狀態,這樣如果你調用了任何函數,你會得到一個錯誤,直到問題得到解決。 – MrKWatkins