2013-04-10 3 views
0

나는 Wake-On-Lan 스크립트로 작업 중이고이 코드가 작동 중이다. 더 잘 이해하려고 노력하고있다.나에게이 Powershell 코드를 암호 해독

$mac = "78ab78ab78ab" #some user input mac address reformatted to something like this one 
$packet = [byte[]](,0xFF * 102) 
6..101 |% { $packet[$_] = $mac[($_%6)] } 

[byte[]](,0xFF * 102) 

이 바이트의 배열이 올바른 0xFF 102 배 값 만들기 위해 말하고있다 : 여기

내가에 문제가 있어요 발췌 한 것입니까? 그래서 packet[0] 이것은 우리가 루프를 통해 진행됨에 따라 하나씩 증가 반복자 ($_)에 기초하여 이전 선언 $ 패킷 배열의 요소에 동작하는 루프 packet[101] = 0xFF

6..101 |% { $packet[$_] = $mac[($_%6)] } 

통해 0xFF 같아야한다. $_%6은 특히 %6 연산자가 무엇인지 잘 모르겠습니다. 나는 루프를 돌파하여 값을 변화 시켰지만 (변화하는 값), 나는 연산자에 익숙하지 않아 출력이 실제로 무엇을 의미하는지 모르겠다.

+0

질문을 조금 더 형식을 지정할 수 있습니까? – rene

+1

@rene : 방금 해 봤으면 좋겠다. – Neolisk

+0

코드 블록이 처음으로 사용하지 않은 형식을 사용하는 중이었습니다. –

답변

1

주 질문은 $_%6입니다. $_%6으로 읽어야합니다. 여기에서 $_6은 피연산자이고 Powershell의 %은 이진 Mod operator from VB.NET world입니다. 그것은 정수 나누기의 나머지를 반환합니다. 예 : 5 Mod 2 = 1.

+0

네, 저에게 가장 수수께끼 같은 예입니다. 두 번째 줄 ($ packet에 대한 할당)으로 추적하는지 알고 있습니까? –

+0

@ Mr.LostITGuy : 예, 귀하의 가정은 맞습니다. – Neolisk

+0

Neolisk를 설명해 주셔서 감사합니다! –