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

如何从MSI的Binary表中提取存储的脚本文本?

从MSI Binary表检索存储脚本的方法

你的代码思路是正确的,通过查询Binary表的Data字段获取流数据后,只需要将Stream转换为文本内容即可——Binary表中存储的脚本通常是文本格式(如VBScript、JScript)。

完整实现代码

string query = $"SELECT `Data` FROM `Binary` WHERE `Name`='{sourceName_}'";

using (View view = db_.OpenView(query))
{
    view.Execute();
    Record record = view.Fetch();
    if (record != null) // 先判断是否找到对应记录,避免空引用
    {
        using (Stream data = record.GetStream(1))
        using (StreamReader reader = new StreamReader(data))
        {
            string scriptContent = reader.ReadToEnd();
            // 此处已获取完整脚本内容,可直接使用或保存
            Console.WriteLine(scriptContent);
        }
    }
}

关键注意事项

  • 必须用using包裹Stream和StreamReader,确保资源被正确释放
  • 如果脚本使用特殊编码(比如UTF-16),可以在StreamReader构造时指定编码,示例:new StreamReader(data, Encoding.Unicode)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:58:16