Erstellen Byte[] in PowerShell
Habe ich einige PowerShell-code, der mit einem COM-API. Ich bin immer ein Type Mismatch Fehler wenn ich den pass in ein byte-array. Hier ist, wie erstelle ich das array, sowie einige Informationen geben
PS C:\> $bytes = Get-Content $file -Encoding byte
PS C:\> $bytes.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Object[] System.Array
PS C:\> $bytes[0].GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Byte System.ValueType
Stochern mit der API habe ich festgestellt, dass es gesucht wird ein Byte[] mit Basistyp System.Array.
PS C:\> $r.data.GetType()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Byte[] System.Array
PS C:\> $r.data[0].gettype()
IsPublic IsSerial Name BaseType
-------- -------- ---- --------
True True Byte System.ValueType
Was ich versuche zu tun ist, konvertieren $bytes in der gleichen Art wie $r.Daten. Für einige Grund, $bytes wird immer erstellt, als ein Object[]. Wie kann ich es umwandeln in ein Byte[]?
InformationsquelleAutor Andy Schneider | 2013-07-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Cast ein byte-array:
System.Object[]
zuSystem.Byte[]
.Getestet habe ich diese vor der Veröffentlichung und es funktioniert, vorausgesetzt, dass Sie nicht weglassen
-Encoding Byte
argument. Wenn es nicht für Sie arbeiten, möchten Sie vielleicht post eine neue Frage mit einer Minimale, Vollständige und Überprüfbare Beispiel einschließlich Ihrer PowerShell-version und die vollständige Fehlermeldung.InformationsquelleAutor Ansgar Wiechers
Diese Antwort ist für die Frage ohne Kontext. Ich bin das hinzufügen es, weil der Suchergebnisse.
Hat bei mir nicht funktioniert. Siehe meine Antwort.
du hast Recht. Ich habe korrigiert.
InformationsquelleAutor Slogmeister Extraordinaire
In PS 5.1,:
[System.Byte[]]::CreateInstance(<Length>)
nicht für mich arbeiten. Anstatt also, ich habe:
new-object byte[] 4
führte in ein leeres byte[4]:
Ich habe absichtlich beantwortet dies mit der nicht ausführlichen form. Jemand will, dass andere wissen, dass die ausführliche form ist
New-Object -TypeName byte[] -ArgumentList 4
Versuchen [byte[]]::new(4)
InformationsquelleAutor Andrew