当前位置: 首页 > 编程笔记 >

在PowerShell函数中解释变量/数组作用域。

包建义
2023-03-14
本文向大家介绍在PowerShell函数中解释变量/数组作用域。,包括了在PowerShell函数中解释变量/数组作用域。的使用技巧和注意事项,需要的朋友参考一下

通常,当变量在脚本中声明为Public变量或在函数外部(而不是在任何其他变量或条件中)时,您无需将该值传递给函数,因为当在调用函数之前先初始化变量。

示例

function PrintOut{
   Write-Output "your Name is : $name"
}
$name = Read-Host "Enter your Name"
PrintOut

在上面的示例中,$name变量在名为PrintOut的函数外部声明。因此,由于可以在函数内部读取变量,因此可以按其名称直接使用变量。

输出结果

Enter your Name: PowerShell
your Name is : PowerShell

相反,如果在内部声明了$name变量,并且在函数外部检查了输出,则不会获得该变量的值。

示例

function PrintOut{
   $name = Read-Host "Enter your Name"
}
PrintOut
Write-Output "your Name is : $name"

输出结果

Enter your Name: PowerShell
your Name is :

您可以在上面的输出中看到$Name的值为NULL,因为在函数中声明了$name。

另一方面,如果在函数外部声明了变量或数组,并且在函数内部修改了变量或数组的值,则不会在函数外部反映出来。

示例

function PrintOut{
   $name = Read-Host "Enter your Name"
   Write-Output "Name inside function : $name"
}
$name = "Alpha"
PrintOut
Write-Output "Name after calling function : $name"

输出结果

Enter your Name: PowerShell
Name inside function : PowerShell
Name after calling function : Alpha

正如我们在此处观察到的那样,$name变量值在函数内部更改,但由于其作用域有限,因此不能反映函数的外部。

同样,对于数组,

$services = @()
function Automatic5Servc{
   $services = Get-Service | Where{$_.StartType -eq "Automatic"} | Select -First 5
}
Automatic5Servc
Write-Output "Automatic Services : $services"

在上面的代码中,由于Services数组变量的值为null并且函数无法更新原始变量,因此您不会获得服务信息。

 类似资料:
  • 本文向大家介绍解释下隐式全局变量和外部函数作用域相关面试题,主要包含被问及解释下隐式全局变量和外部函数作用域时的应答技巧和注意事项,需要的朋友参考一下 隐式全局变量是不需要声明即可以在任何地方直接使用的变量,如浏览器端的window, node端的global 当函数内包括函数时(闭包),外层函数相对于内层函数的作用域即外部函数作用域

  • 我有以下Powershell代码: 我应该如何声明可以传递给函数的局部变量。我的局部变量$file被填充,但当我将其作为其他函数的参数时,它就像它超出了范围。 我读了关于scopes的文章,但没能弄明白。 当前我收到错误: ini文件:D:\Projects\scripts\Configs\HBOX。ini测试路径:无法将参数绑定到参数“Path”,因为它是空字符串。在D:\项目\自由职业者。co

  • 我对这条规则有两个问题: > 在注释函数的最后一个参数中,我找不到正确的语法来将文本字符串与捕获组变量组合在一起。上面的“操作”字段导致以下异常: ParseException:在第34行第72列遇到“+”“+”。我期待其中之一:“)”...“,”... 显然,当我使用“+”将字符串追加到一起时,最后一个参数没有正确地强制转换为字符串。 将最后一个参数中的字符串组合到注释函数中的正确方法是什么?

  • 问题内容: 我究竟做错了什么?为什么$ path在函数外部正确打印,但是在函数内部无法访问? 问题答案: 因为它没有在函数中定义。 有几种方法可以解决此问题: 1)使用亚历克斯所说的话,告诉函数它是一个全局变量: 2)将其定义为常量: 3)如果特定于该函数,则将其传递给该函数: 根据功能的实际工作原理,其中之一会起作用。

  • 主要内容:用数组作函数参数在C语言中,函数的参数不仅可以是整数、小数、字符等具体的数据,还可以是指向它们的 指针。用指针变量作函数参数可以将函数外部的地址传递到函数内部,使得在函数内部可以操作函数外部的数据,并且这些数据不会随着函数的结束而被销毁。 像数组、字符串、动态分配的内存等都是一系列数据的集合,没有办法通过一个参数全部传入函数内部,只能传递它们的指针,在函数内部通过指针来影响这些数据集合。 有的时候,对于整数、小数

  • $INSTDIR 用户定义的解压路径。 $PROGRAMFILES 程序文件目录(通常为 C:\Program Files 但是运行时会检测)。 $COMMONFILES 公用文件目录。这是应用程序共享组件的目录(通常为 C:\Program Files\Common Files 但是运行时会检测)。 $DESKTOP Windows 桌面目录(通常为 C:\windows\desktop 但是运