繁体   English   中英

与我一起解密此Powershell代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM