PowerShell高效Base64转换脚本使用求助
怎么用这段PowerShell脚本实现二进制与Base64互转
嘿,刚接触PowerShell的话,这段脚本其实已经把核心的互转逻辑封装好了,只是需要知道怎么正确调用它就行!我来一步步给你讲清楚操作步骤:
第一步:先把脚本加载到PowerShell环境里
你需要先让PowerShell识别这三个函数,有两种简单的方式:
- 直接把整个脚本复制粘贴到PowerShell控制台里,按回车执行,这样函数就会被加载到当前会话中;
- 把脚本保存成一个
.ps1文件(比如命名为Base64Converter.ps1),然后在PowerShell里执行这个命令加载它:
注意第一个点是“点源”操作,用来加载脚本里的函数,第二个点代表当前目录,要是脚本在别的路径,换成对应的绝对路径就行。. .\Base64Converter.ps1
二进制文件转Base64文本(使用ConvertTo-Base64)
这个函数的作用是把任意二进制文件(比如图片、压缩包、exe文件)转换成Base64编码的文本文件。它需要两个参数:
SourceFilePath:你要转换的原始二进制文件的路径(可以是相对路径,也可以是绝对路径);TargetFilePath:转换后生成的Base64文本文件的保存路径。
举个例子:
比如我要把D盘根目录下的test.jpg转换成Base64文本,保存到桌面的test_base64.txt,就执行这条命令:
ConvertTo-Base64 -SourceFilePath "D:\test.jpg" -TargetFilePath "C:\Users\你的用户名\Desktop\test_base64.txt"
如果文件路径里有空格,一定要用双引号把路径包起来,比如:
ConvertTo-Base64 -SourceFilePath "D:\我的图片\holiday.jpg" -TargetFilePath "C:\Users\你的用户名\Desktop\假期图片_base64.txt"
Base64文本转二进制文件(使用ConvertFrom-Base64)
这个函数是上面操作的逆过程,把Base64编码的文本文件还原成原始的二进制文件。参数和上面对应:
SourceFilePath:你要转换的Base64文本文件的路径;TargetFilePath:还原后生成的二进制文件的保存路径。
举个例子:
把刚才生成的test_base64.txt转回图片,保存到桌面的test_copy.jpg:
ConvertFrom-Base64 -SourceFilePath "C:\Users\你的用户名\Desktop\test_base64.txt" -TargetFilePath "C:\Users\你的用户名\Desktop\test_copy.jpg"
一些小提示
- 脚本里的
Resolve-PathSafe函数是帮你处理路径的,不管你输入的是相对路径(比如.\test.jpg)还是绝对路径,它都会转换成PowerShell能正确识别的完整路径,不用自己手动处理路径格式; - 脚本里的
bufferSize设置成9000是有原因的:转Base64时,每3个字节会转换成4个Base64字符,所以缓冲区大小要是3的倍数;转回来时需要处理4个字符一组的Base64编码,所以缓冲区要是4的倍数,9000刚好同时满足这两个要求,能保证转换效率和正确性; - 注意:如果目标文件已经存在,脚本会直接覆盖它,所以转换前最好先备份好目标路径下的文件哦!
内容的提问来源于stack exchange,提问作者user2020




