我使用自定义PowerShell函数来让我的生活更轻松。
示例:
// custom function
> function build {cmd /c build.ps1}
// invoke the function
> build
这很好,可以让我快速运行我的构建脚本 不可思议的是,很容易忘记我创建的所有自定义函数。
是否有可以运行的cmdlet来转储我的自定义函数列表?随后,一旦我知道这些函数是什么,是否有一个cmdlet我可以运行来删除那些我不再需要的函数?
答案 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
}