用我解读这个Powershell代码

时间:2013-04-10 17:54:48

标签: powershell wake-on-lan

我正在开发一个Wake-On-Lan脚本,我的代码正常运行,我只是想更好地理解它。

以下是我遇到问题的摘录:

$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]应该等于0xFFpacket[101] = 0xFF

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

这是一个循环,它基于迭代器($_)对我们之前声明的$ packets数组的元素进行操作,迭代器$_%6在循环过程中逐渐增长。我不确定%6特别是{{1}}运算符的作用。我已经浏览了循环并输出了值(确实发生了变化),但由于我不熟悉运算符,所以我不确定输出的真正含义。

1 个答案:

答案 0 :(得分:1)

我认为你的主要问题是围绕$_%6。您应该将其视为$_ % 6,其中$_6是您的操作数,而Powershell中的%是二进制5 Mod 2 = 1 3}}。它返回整数除法的余数。所以,例如{{1}}。