Table of Contents
Using Add-Content Cmdlet
Use the Add-Content cmdlet to write binary files in PowerShell.
|
1 2 3 4 |
$binaryData = [Byte[]] (0x01, 0x02, 0x03, 0x04) Add-Content -Path ".\test.bin" -Value $binaryData -Encoding Byte |
This script created a new file named test.bin in the current working directory and wrote the binary data to the file. The script will append data to the existing file if the file already exists. First, we stored the array of bytes in $binaryData containing different values.
Then, we used the Add-Content cmdlet to write provided binary data to the specified .bin file; in our case, it is in the current directory. Here, the -Path parameter was used to specify the file path while the -Value parameter was used to specify the content to be added; in this case, it is the $binaryData variable. Next, the -Encoding Byte parameter tells PowerShell to write the data as a binary file.
Using the [IO.File]::WriteAllBytes() Method
Use [IO.File]::WriteAllBytes() method to write binary files in PowerShell.
|
1 2 3 4 |
$binaryData = [Byte[]] (0x01, 0x02, 0x03, 0x04) [IO.File]::WriteAllBytes(".\test.bin", $binaryData) |
Here, we used the [IO.File]::WriteAllBytes() method to write the content of the byte array ($binaryData) to a binary file. The first parameter was the file path; in this case, it is test.bin in the current directory; the second parameter was the byte array ($binaryData) that contains the binary data.
Until now, we have learned how to write a binary array to a binary file; let’s see how we can write the binary file when we are provided with the base64 encoded string.
Further reading:
Using FromBase64CharArray() with Add-Content
To write to a binary file in PowerShell:
- Use the
FromBase64CharArray()to convert the base64 encoded string to byte array. - Use the
Add-Contentcmdlet to write a byte array (received from the previous step) to a binary file.
|
1 2 3 4 5 |
$base64String = "TESTING==" $binaryData = [System.Convert]::FromBase64String($base64String) Add-Content -Path ".\test.bin" -Value $binaryData -Encoding Byte |
In the above code fence, the $base64String variable contained a base64 encoded string; this string was the encoded version of a byte array. The $binaryData variable receives the result of the [System.Convert]::FromBase64String() method; this method converts the base64 encoded string to a byte array.
Then, we used the Add-Content cmdlet that we discussed in the first section to write the binary data stored in the $binaryData variable to a file named test.bin. Here, the -Encoding Byte parameter was used to inform PowerShell to write the specified data as a binary file.
Note: The
base64string should be a validbase64encoded string, otherwise, the[System.Convert]::FromBase64String()method will throw an exception.
That’s all about how to write binary files in PowerShell.