Powershell递归函数 - 如何判断我在哪个级别?

时间:2017-05-18 13:22:02

标签: powershell recursion

我有这个代码,它返回有关TFS WorkItems的信息。我删除了TFS特定的东西以减少噪音。在一天结束时,它是一个递归函数,以root开头,只要找到孩子就走在树下。我想添加一些逻辑来根据级别不同地格式化输出。可能是为每一行添加一个标签,或者以其他方式在视觉上标识每个级别,是否有if ($$some_variable -eq 1) {write-host "welcome to level 1"}之类的内容? 这是powershell代码:

   $wi_id = 123
$result=@()

function get_linkedWIs  {
param($wi_id)
$WIT.GetWorkItem($wi_id) |%{ $_.WorkItemLinks} |?{$_.LinkTypeEnd.Name -eq "Child" } | %{$result +=$WIT.GetWorkItem($_.targetid)}

$result.GetEnumerator()  | Sort -Property id -Unique 
}

function get_children {
param($wi_id)
$rs = get_linkedWIs $wi_id
$rs | %{
Write-Host "this is a num - "$script:num

write-host $_.Type.Name" "$_.id" "$_.Title
$has_children = 0
$_.WorkItemLinks | %{if ($_.LinkTypeEnd.Name -eq "Child" -or $has_children -eq 1) {$has_children =1} }
if ($has_children -eq 1)
{
$script:num +=1
get_children $_.id 
}
}

}


get_children $wi_id

1 个答案:

答案 0 :(得分:1)

当然......在参数列表中传递class contactShortName { function getShortName($bean, $event, $arguments) { $bean->short_name = substr($bean->first_name,0,1) . '.' . $bean->last_name; $bean->save(); } } 变量。主程序调用值1.当函数重复时,使用值level调用。这样,每个实例都有一个保持调用级别的局部变量。

您也可以使用全局变量执行此操作,在输入时添加1并在退出时减1,但这不安全。