如果我有点源:
. "\foo-bar.ps1"
Run Code Online (Sandbox Code Playgroud)
如何查看获取所有点源脚本的列表以及如何从点源脚本中删除"foo-bar/ps1"?
JPB*_*anc 11
据我所知,您无法删除点源脚本.这就是PowerShell 2.0中引入的模块的原因.请参阅About_Modules
您可以将"foo-bar.ps1"转换为模块.可以导入模块(Import-Module)并删除(Remove-Module).
我同意@JPBlanc一般不能删除点源脚本,但根据您自己的编码约定,您可以在实践中执行此操作.
首先是几个关于为什么你不能这样做的观察:
(1)PowerShell没有将点源脚本作为单独的实体的概念.一旦你点源它,它的内容就会成为你当前上下文的一部分,就像你在提示符下手动输入每一行一样.因此,你无法删除它,因为它实际上并不存在:-)
(2)由于与(1)相同的原因,您无法列出点源脚本.
现在,无论如何都要这样做:
但是,根据点源脚本的内容和约定,您可以执行所需的操作.如果,例如,脚本简单地定义三个功能-调用这些func-a,func-b和func-c--then你可以既列表和删除这些功能.
列出同化功能:
Get-ChildItem function:func-*
Run Code Online (Sandbox Code Playgroud)
删除同化功能:
Remove-Item function:func-*
Run Code Online (Sandbox Code Playgroud)
如果您知道点源文件的路径,则可以删除源函数:
Get-ChildItem function: |
Where-Object {$_.ScriptBlock.File -eq $path} |
Remove-Item
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1984 次 |
| 最近记录: |