Windows批处理文件的文件大小和行长度限制

时间:2009-08-01 18:05:11

标签: windows batch-file

我正在生成一个可能变得非常大的Windows批处理文件,比如几兆字节。我已经搜索了关于批处理文件中最大文件大小和最大行长度的可能限制,但我找不到任何内容。任何实践经验?

6 个答案:

答案 0 :(得分:9)

我认为文件大小可以达到2 GB,甚至可能更高。它是一种解释型语言,因此如果这样做,文件大小限制应该是文件系统的文件大小限制。我从来没有批处理文件太大的错误,我创建的其中一些是几个MB的大小。

应该有一个行长度限制,但它应该超过256.这可以很容易地测试,只需做一些“设置A = 123456789012 ... endofline”,之后“echo%A%”,你我会知道你能走多远。

它适用于我很长的行(4K左右),但在8K echo给出一条消息,“行太长”,所以8192字节应该是一些限制。

现在测试了文件大小,测试了“echo off”,成千上万的设置行,在“echo end”之后,它适用于11 MB文件(虽然花了几秒钟才完成:) - 没有限制在这里看到了。

110 MB也有效。这够了吗? ;)

答案 1 :(得分:4)

CMD中任何命令行(或变量)的最大长度为8191 characters

答案 2 :(得分:2)

一些想法,不一定是相互排斥的:

  • 切换到PowerShell
  • 切换到数据驱动的应用程序,以便将所有变量内容保存在数据文件(CSV,文本等等)中,因此您可以使用较小的样板脚本打开数据文件和操作。

答案 3 :(得分:2)

即使在%var%!var!表达式扩展后,单行也不应超过8192个字符,否则会出错。

文件本身没有(已知)限制。

答案 4 :(得分:0)

它应该至少可以工作2 GB。读取行 直接来自磁盘上的BAT文件(没有缓存 参与)。由于以下原因,我发表此声明:

实际上,您可以在BAT文件运行时编辑它!它 即使文本编辑器可能重命名原始文件也可以 版本并将新版本保存在新的位置上 磁盘。只要你小心不要在上面插入文字 当前正在执行的命令。线条可以 在当前执行的下方更改/插入/删除 命令和新行将是执行的行。我有 通常使用包含长列表的BAT文件来完成此操作 wget命令,每次执行需要几十分钟。

答案 5 :(得分:0)

根据Microsoft的说法,批处理文件大小没有限制。但是,批处理文件行不应超过127个字节,否则将在执行时截断。

请参阅 Maximum Line Length and Count for Batch Files & CONFIG.SYS