【问题标题】:Storing large file within batch file在批处理文件中存储大文件
【发布时间】:2015-02-07 14:14:43
【问题描述】:

我正在尝试创建一个批处理文件,其中将一个或多个大文件存储为 base64 编码字符串,然后将它们转换回文件。我一直在关注这个问题的第一个答案:Store a file inside of a batch file? 但我试图在这个批处理文件中存储一个~3mb 的文件,当涉及到将文件源写回文件时(通过回显),批处理文件似乎崩溃了。我收到一个弹出窗口,提示“Windows 命令处理器已停止工作”。

批处理文件一次可以写入文件的数据量有限制吗?

我已经正确地遵循了这个示例,只是将 file.tmp 名称更改为 filetest.tmp,但这个批处理文件中有大约 47,000 行(这可能是导致它崩溃的原因)。

知道如何解决这个问题吗?

编辑:certutil 对原始文件的编码速度非常快,所以我认为这部分不是问题。

【问题讨论】:

    标签: batch-file cmd base64 certutil


    【解决方案1】:

    我建议您查看我的 Binary to Batch 编码程序的最新版本:BinToBat.bat;对于这种类型的编码,它具有一系列非常有用的功能。这是帮助屏幕:

    Create an installer Batch program for data files of any type
    
    BINTOBAT [/T:.ext1.ext2...] [/L:lineSize] [/F[:fileSize]] filename ...
    
      /T:.ext1.ext2    Specify the extensions of text type files that will not be
                       encoded as hexadecimal digits, but preserved as text.
      /L:lineSize      Specify the size of output lines (default: 78).
      /F[:fileSize]    /F switch specify to generate a Full installer file.
                       The optional fileSize specify the maximum output file size.
    
    BinToBat encode the given data files as hexadecimal digits (or preserve they
    as compressed text) and insert they into InstallFiles.bat program; when this
    program run, it generates the original data files.
    
    You may rename the InstallFiles.bat program as you wish, but preserving the
    "Install" prefix is suggested.
    
    You may use wild-cards in the filename list.
    
    If the /F switch is not given, a Partial installer is created:
    - You may insert a short description for each file.
    - You may insert divisions in the file listing via a dash in the parameters.
    - The installer allows to select which files will be downloaded and ask
      before overwrite existent files.
    
    If the /F switch is given, a Full installer is created:
    - The installer always download all files.
    - You may specify commands that will be executed after the files were copied.
    - You may specify the maximum size of the output file via /F:fileFize, so in
      this case the output file will be divided in parts with a numeric postfix.
    
      If you use /F switch you can NOT rename the InstallFiles??.bat files; the
      first one is the installer and the rest just contain data.
    

    该程序已通过 15 MB 大小的文件成功测试,这些文件在合理的时间(8-9 分钟)内编码,提取速度更快。当然,这些时间取决于所使用的计算机。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-25
      • 1970-01-01
      • 2012-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多