我正在尝试创建一个批处理文件,该文件将一个或多个大文件作为base64编码字符串存储在其中,然后将它们转换回文件。我一直在关注这个问题的第一个答案:将文件存储在批处理文件中?但是我正在尝试在此批处理文件中存储一个~3MB文件,并且在将文件源写回文件(通过Echo)时,批处理文件似乎崩溃了。我收到一个弹出窗口,说"Windows 命令处理器已停止工作"。
批处理文件一次可以写入文件的数据量是否有限制?
我正确地遵循了该示例,仅将文件.tmp名称更改为filetest.tmp,但是此批处理文件中大约有47,000行(这可能是导致其崩溃的原因)。
关于如何解决这个问题的任何想法?
编辑:certutil对原始文件进行了非常快的编码,因此我认为该部分不是问题。
我建议您查看我的二进制到批处理编码程序的最新版本: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分钟)内编码并提取得更快。当然,这些时间取决于所使用的计算机。