如何获取自定义Powershell函数列表?

时间:2013-03-29 00:08:44

标签: powershell

我使用自定义PowerShell函数来让我的生活更轻松。

示例:

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

// invoke the function
> build

这很好,可以让我快速运行我的构建脚本 不可思议的是,很容易忘记我创建的所有自定义函数。

是否有可以运行的cmdlet来转储我的自定义函数列表?随后,一旦我知道这些函数是什么,是否有一个cmdlet我可以运行来删除那些我不再需要的函数?

5 个答案:

答案 0 :(得分:21)

获取可用功能列表

> Get-ChildItem function:\

删除powershell函数

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

答案 1 :(得分:8)

将此添加到您的个人资料中:

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

和myfunctions将仅列出自会话开始以来创建的函数。

答案 2 :(得分:3)

一个解决方案是将所有函数放在psm1文件中并创建一个模块。这样,您就可以导入模块并将所有命令放在一个不错的module

答案 3 :(得分:0)

也可以使用

dir function:

或者将其清除

dir function: | where {$_.source -ne [string]::Empty} | sort source

答案 4 :(得分:0)

我不喜欢给出的答案,因为由于某些原因,当我致电Get-ChildItem function:时,我的个人资料中没有列出自定义功能,因此我的工作是这样的:

Function Get-MyCommands {
    Get-Content -Path $profile | Select-String -Pattern "^function.+" | ForEach-Object {
        [Regex]::Matches($_, "^function ([a-z.-]+)","IgnoreCase").Groups[1].Value
    } | Where-Object { $_ -ine "prompt" } | Sort-Object
}