我正在开发一个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]
应该等于0xFF
到packet[101] = 0xFF
6..101 |% { $packet[$_] = $mac[($_%6)] }
这是一个循环,它基于迭代器($_)
对我们之前声明的$ packets数组的元素进行操作,迭代器$_%6
在循环过程中逐渐增长。我不确定%6
特别是{{1}}运算符的作用。我已经浏览了循环并输出了值(确实发生了变化),但由于我不熟悉运算符,所以我不确定输出的真正含义。
答案 0 :(得分:1)
我认为你的主要问题是围绕$_%6
。您应该将其视为$_
%
6
,其中$_
和6
是您的操作数,而Powershell中的%
是二进制5 Mod 2 = 1
3}}。它返回整数除法的余数。所以,例如{{1}}。