1
我几乎没有使用PowerShell的经验,因此我试图在输入二进制文件时进行一些按位操作(纯粹为了便于阅读)。我使用以下函数来转换和从二进制,他们似乎工作。作为PowerShell函数参数的表达式
function bin($a){
return [convert]::ToString($a,2)
}
function unbin($a){
return [convert]::ToInt64($a,2)
}
然后我试图运行以下命令:
bin(unbin('11001101') -bxor unbin('10110110'))
期待输出1111011
。
令我惊讶的是我得到结果11001101
(bin(unbin('11001101'))
的结果)。
为了让我的代码工作,我需要包装在进一步括号中的unbin
电话,我不明白为什么:
bin((unbin('11001101')) -bxor (unbin('10110110')))
为什么这些额外的括号需要的?
好了,这是伟大的,那么为什么对象的方法需要括号例如''test“.Split”e“''在'test'时不起作用.Split(”e“)'会做什么? –
注意我几乎没有使用PowerShell的经验,所以在这一点上,我的cmdlet,方法等之间的区别就会消失。 –
.NET方法的调用方式与它们在C#中的工作方式类似。 Cmdlet和函数的设计 - 毕竟它是一个shell,更像shell命令,其参数只是用空格分隔。 – Joey