[英]Decipher This Powershell Code With Me
我正在编写一个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
运算符的作用。 我已经遍历了循环并输出了值(确实会改变),但是由于我对运算符不熟悉,因此不确定输出的真正含义。
我认为您的主要问题是$_%6
。 您应该将其读为$_
%
6
,其中$_
和6
是您的操作数,而Powershell中的%
是VB.NET world中的二进制Mod
运算符 。 它返回整数除法的余数。 因此,例如5 Mod 2 = 1
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.