何时评估PowerShell data sections?
具体来说,它们在运行时定义/加载时仅被评估一次吗?还是对包含函数的每次执行都进行评估,即使它已经被定义/加载了?
我假设包含上下文是一个函数或高级函数,在定义/加载后将在单个会话中多次调用该上下文,而不是每次调用都必须重新加载的脚本文件(到目前为止)据我了解)。
答案 0 :(得分:1)
测试这两个问题的脚本:
(get-date).TimeOfDay.ToString()
Start-Sleep -Milliseconds 100
DATA dat -supportedCommand Get-Date {
get-date
}
Start-Sleep -Milliseconds 100
(get-date).TimeOfDay.ToString()
Start-Sleep -Milliseconds 100
$dat.TimeOfDay.ToString()
结果(请注意,第二行的时间是最晚的):
12:21:23.3191254
12:21:23.5393705
12:21:23.4306211
得出以下结论:
数据节将更加有用。例如,仅在需要时才读取大型文本文件,或在每次访问时刷新变量。