2013-03-29 51 views
9

我使用自定義PowerShell功能,使我的生活更輕鬆。如何獲取自定義PowerShell功能列表?

例子:

// custom function 
> function build {cmd /c build.ps1} 

// invoke the function 
> build 

這個偉大的工程,讓我趕緊跑我的構建腳本。
Unforutnately很容易忘記我創建的所有自定義函數。

是否有一個我可以運行以轉儲我的自定義函數列表的cmdlet?隨後,一旦我知道這些功能是什麼,是否有一個我可以運行的cmdlet刪除那些不再需要的命令?

回答

15

,獲得可用的功能

> Get-ChildItem function:\ 

的列表中刪除一個PowerShell功能

// removes `someFunction` 
> Remove-Item function:\someFunction 
6

添加到您的個人資料:

$sysfunctions = gci function: 
function myfunctions {gci function: | where {$sysfunctions -notcontains $_} } 

和myfunctions將只列出的功能這是自會議開始以來創建的。

+1

很好地工作,但需要在您的自定義功能開始前添加 – tocallaghan

+0

如果使用'',停止工作。 $ profile'來重新加載最近的更改。猜猜它認爲「重新加載」一個新的會話 –

+0

@KolobCanyon不,它不考慮任何「新會話」。它只是重新運行'gci function:'命令;返回值包含您在調用'時的所有自定義函數。 $ profile'。一個可能的解決方案可能是在'if'塊中包裝'$ sysfunctions = gci function:',以確保它沒有值。 – jpmc26

3

對您而言,一個解決方案是將所有功能放在psm1文件中並創建一個模塊。這樣,您可以導入模塊並將所有命令放在一個漂亮的module中。