You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Zip、7z归档文件直接嵌入PowerShell脚本(PS1)中?

将压缩文件嵌入PowerShell脚本的实现方案

核心思路:Base64编码转换

把二进制压缩文件(Zip/7z)转成Base64字符串,直接存入PowerShell变量,脚本运行时再解码还原成原文件。这是PowerShell原生支持的方案,比第三方bat脚本更可靠、兼容性更强。

步骤1:生成压缩文件的Base64字符串

打开PowerShell,执行以下命令替换路径生成字符串:

# 读取压缩文件的二进制内容并转为Base64
$base64String = [Convert]::ToBase64String([IO.File]::ReadAllBytes("D:\test\small_archive.7z"))
# 将字符串输出到文本文件方便复制(可选)
$base64String | Out-File -FilePath "D:\test\archive_base64.txt" -NoNewLine

步骤2:在目标PS1脚本中嵌入并还原文件

把生成的Base64字符串直接赋值给变量,再解码还原:

# 嵌入的Base64字符串(替换成你生成的内容)
$archiveBase64 = "这里替换成你的压缩文件Base64字符串"

# 解码并还原为原压缩文件
$archiveBytes = [Convert]::FromBase64String($archiveBase64)
[IO.File]::WriteAllBytes("C:\temp\restored_archive.7z", $archiveBytes)

注意事项

  • 仅适合小型压缩文件:如果文件过大,Base64字符串会让脚本体积膨胀数倍,影响加载和运行效率。
  • 多文件处理:如果要嵌入多个压缩包,可以分别生成Base64字符串存入数组,或者先把多个包合并成一个压缩文件再转换。
  • 避免多余换行:生成Base64时用-NoNewLine,防止字符串中混入不必要的换行符导致解码失败。

内容的提问来源于stack exchange,提问作者Ivan Benishek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:16:13