这个问题是为了帮助我清除PowerShell中对变量的一些困惑。我熟悉创建变量并为其赋值的概念..例如,在SharePoint中,您可以这样做:$spsite = http://site
然而,PowerShell中有很多变量可以通过各种方式使用。
例如,如果我在变量$spsite
中设置网站集(就像我上面所做的那样),我可以对其进行foreach循环并遍历每个网站..
foreach ($web in $spsite)
在另一个例子中,我看到类似这样的东西
$a = 5
$b = 6
$c = 7
$d = $a,$b,$c
Foreach ($i in $d)
{ $i + 5}
在这两种情况下,我都没有为$ i或$ web分配值..但它们有某种意义或价值。我得到$ web是网站集中的每个网站。但PowerShell如何知道这一点?它只是吗?
有人可以解释一下这个和/或发给我链接到解释的地方吗?
PowerShell中还有所有这些特殊变量和特殊字符(快捷方式)的列表。例如,我相信%是foreach-object cmdlet
答案 0 :(得分:3)
$i
和$web
不是特殊变量。它们只是人们重复使用的流行名称。 foreach
- 循环中当前对象的名称由您定义。
例如:
#Creating a simple array for the demonstration
$MyArrayOfAwesomeObjects = 1,2,3
foreach ($ThisVariableIsAwesome in $MyArrayOfAwesomeObjects) {
#Here, $ThisVariableIsAwesome is the current object, and we can call methods on it.
$ThisVariableIsAwesome.GetType()
}
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Int32 System.ValueType
True True Int32 System.ValueType
True True Int32 System.ValueType
至于%
- > Foreach-Object
,这只是一个别名。您可以使用Get-Alias