Ich habe wenig Erfahrung mit PowerShell, also versuchte ich einige bitweise Operationen während der Eingabe in Binärcode (rein für die Lesbarkeit). Ich habe die folgenden Funktionen verwendet, um zu und von binär zu konvertieren und sie scheinen zu arbeiten.Ausdrücke als PowerShell-Funktionsparameter
function bin($a){
return [convert]::ToString($a,2)
}
function unbin($a){
return [convert]::ToInt64($a,2)
}
Dann versuchte ich folgendes auszuführen: 1111011
bin(unbin('11001101') -bxor unbin('10110110'))
erwarten den Ausgang.
Zu meiner Überraschung bekomme ich stattdessen das Ergebnis 11001101
(das Ergebnis von bin(unbin('11001101'))
).
Um meinen Code bekomme ich die unbin
Anrufe in weiteren Klammern zu wickeln zu arbeiten brauchte, und ich kann nicht verstehen, warum:
bin((unbin('11001101')) -bxor (unbin('10110110')))
Warum sind diese zusätzlichen Klammern benötigt?
Okay, das ist toll, warum dann brauchen Objektmethoden Klammern z.B. '" test ".Split" e "' funktioniert nicht, während "" test ".Split (" e ")' tut? –
Hinweis Ich habe wenig Erfahrung mit PowerShell, daher ist der Unterschied zwischen Cmdlets, Methoden usw. an dieser Stelle für mich verloren. –
.NET-Methoden werden ähnlich wie in C# aufgerufen. Cmdlets und Funktionen sind entworfen - es ist schließlich eine Shell - mehr wie Shell-Befehle, bei denen Argumente nur durch Leerzeichen getrennt sind. – Joey