我有一个大脚本,如果已经调用了函数调用,我想忽略它。
我有一个标志,现在设定为确定。但是,我如何做到这一点,而无需为此标记或计数。
谢谢!
答案 0 :(得分:7)
你可以让函数重写自己,在第一次调用后基本上成为noop:
function TestFunction
{
'Do Stuff'
function Script:TestFunction { Return }
}
答案 1 :(得分:1)
这样的事可能会对你有所帮助:
function A
{
Write-Host "calling function A"
}
function B
{
Write-Host "calling function B"
}
function C
{
Write-Host "calling function C"
}
function All
{
A
if (!$script:BHasBeenCalled)
{ B }
C
}
Get-PSBreakpoint | Remove-PSBreakpoint
Set-PSBreakpoint -Command B -Action { $script:BHasBeenCalled = $true } | Out-Null
$script:bHasBeenCalled = $false
#First call: B should be invoked
All
#Second call: B shouldn't be invoked
All
答案 2 :(得分:-1)
如果该功能已被调用,则它已加载并显示在Ps驱动器功能中。
function test1 {
# define a function
function test2 {return}
# call it
test2
# check it was called
dir function:\test2
}
test1