2014-04-29 3 views
0

이 질문은 PowerShell에서 변수가있는 혼란을 해결하는 데 도움이됩니다. 저는 변수를 생성하고 값을 할당하는 개념에 익숙합니다. 예를 들어 SharePoint에서는 다음을 수행합니다. $spsite = http://sitePowerShell의 "특수"변수 및 문자는 무엇입니까?

그러나 사용할 수있는 PowerShell의 많은 변수가 있습니다 다양한 방법으로.

은에서는 ..

foreach ($web in $spsite)

를 I는 (I 위에서처럼) 가변 $spsite에서 사이트 모음을 설정할 경우, 예를 들어, I는 그것에 foreach 루프를 수행 할 수 있으며, 각각의 웹 사이트를 통해 반복 또 다른 예는, 나는 ... 두 경우 모두이

$a = 5 
$b = 6 
$c = 7 
$d = $a,$b,$c 

Foreach ($i in $d) 
{ $i + 5} 

같은 것을, 나는 $ I 또는 $ 웹에 값을 할당하지 않은 참조 아직 그들은 의미 나 가치의 어떤 종류가있다. 그 $ web은 사이트 모음의 각 웹 사이트입니다. PowerShell은 이것을 어떻게 알 수 있습니까? 그냥하는거야?

누군가 설명하고 설명해 줄 수있는 링크를 보내주십시오.

또한 모든 특수 변수 및 PowerShell의 특수 문자 (바로 가기)의 목록은 .. 예를 들어, 내가 %가

답변

3

$i$web 특별한 변수가 아닌 foreach는 객체 cmdlet입니다 믿고있다. 그들은 단지 사람들이 재사용하는 인기있는 이름입니다. foreach -loop에있는 현재 오브젝트의 이름은 사용자가 정의합니다.

예는 :

%에 관해서는
#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

+0

오케이로 모든 별칭을 볼 수 있습니다. 따라서 원래 게시물의 예를 보려면 다음과 같이 할 수 있습니다. 'foreach ($ spawes에 $ myawesomeweb)'와 같은 작업을 수행 할 수 있습니까? ... 그리고 $ i는 기본적으로 "내 배열의 각 변수에 대해"말하는 것입니까? Get-Alias ​​cmdlet을 주셔서 감사합니다. – spex5

+0

예. 그 이유는 많은 사람들이'$ i'를 사용하고'$ whatever'는'index'를 의미하기 때문입니다. –

+0

글쎄, 기술적으로 그것은 인덱스가 아닌 컬렉션의 항목입니다. 하지만'$ i'는'$ item'의 약자로 생각할 수 있습니다. :-) –