2016-12-22 14 views
2

符号なし整数(4バイトのDWORDバイナリ表現)をPowerShellでファイルに書き込もうとしていますが、試したすべての選択肢はテキストを書き込むだけです。PowerShellでファイルにバイナリとして整数値を書き込む

のは、私はこの番号を持っているとしましょう:

$number = [Int] 255

ファイルの内容がFF000000(バイナリ)でなければなりません、ない255(テキスト)。

私はPowerShellのエキスパートではありません。何か助けていただければ幸いです。私たちはネットクラスに依存する必要があると思う。このため

$number = [Int] 255 
# Convert the number to a byte[4] array 
$bytes = [System.BitConverter]::GetBytes($number) 
# Write the bytes to a file 
Add-Content -Path "D:\FILE.BIN" -Value $bytes -Encoding Byte 
+0

あなたの質問があいまいです。符号付き/符号なし整数。どのようにファイルを書いたり、読んだりしますか? [これを見る](https://stackoverflow.com/questions) – LotPings

答えて

4

は解決策を見つけました。

を使用すると、[byte[]]のバイト配列を取得できます。

そこから、文字列に変換されずにファイルにバイトを書き込む方法が必要です。

[System.IO.File]::WriteAllBytes()を使用してください。

ので組み合わせを、このようなコードはそれを行うだろう:

$number = [int]255 
$bytes = [System.BitConverter]::GetBytes($number) 
[System.IO.File]::WriteAllBytes('C:\MyPath\To\File.bin', $bytes) 
+0

これはきちんとしていて、 'Add-Content'の' Byte'エンコードについては知らなかった。コマンドレットはファイルに追加されますが、 '-Encoding Byte'は' Set-Content'と 'Out-File'でも動作すると思います。 – briantist

2

+0

私はまったく同じことをしながら、同時に答えを投稿しました。 – karliwson

+0

@karliwsonええ、私たちは数秒離れているようだ! – briantist

関連する問題