PowerShell을 사용 해본 경험이 거의 없으므로 이진 형식으로 입력하는 동안 일부 비트 연산을 시도하고있었습니다 (읽기 쉽도록). 바이너리로 변환 할 때 다음과 같은 함수를 사용했다.PowerShell 함수 매개 변수로 표현식
bin(unbin('11001101') -bxor unbin('10110110'))
출력 1111011
을 기대 :
function bin($a){
return [convert]::ToString($a,2)
}
function unbin($a){
return [convert]::ToInt64($a,2)
}
그런 다음 나는 다음과 같은 실행하려고했습니다.
놀랍게도 대신 11001101
(결과는 bin(unbin('11001101'))
)입니다. 위해
내 코드는 내가 더 괄호 안에 unbin
호출을 래핑하는 데 필요한 작동하도록하고 그 이유를 이해할 수 없다 :
bin((unbin('11001101')) -bxor (unbin('10110110')))
왜 이러한 추가 괄호가 필요합니까?
좋아, 잘 됐네요, 왜 객체 메소드가 필요합니까 괄호 예를 들어, ' "test".Split "e"는''test ''동안 작동하지 않습니다. –
참고 PowerShell에 대한 경험이 거의 없으므로이 시점에서 cmdlet, 메서드 등의 차이점이 사라졌습니다. –
.NET 메서드는 C#에서의 작동 방식과 비슷하게 호출됩니다. Cmdlet과 함수는 설계되었습니다. - 결국 쉘을 사용합니다. 인수는 공백으로 구분되는 쉘 명령과 같습니다. – Joey