代码之家  ›  专栏  ›  技术社区  ›  zedoo

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

  •  8
  • zedoo  · 技术社区  · 17 年前

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

    6 回复  |  直到 10 年前
        1
  •  9
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

    我认为文件大小可以是任何高达2 GB的东西,甚至更多。它是一种解释性语言,因此如果这样做是正确的,文件大小限制应该是文件系统的文件大小限制。批处理文件太大时,我从来没有出现过任何错误,我创建的一些文件的大小为几个MB。

    应该有一个行长度限制,但它应该超过256。这很容易测试,只需做一些“设置A=123456789012…endofrine”,然后“echo%a%”,你就会看到你能走多远。

    对我来说,它的线路很长(大约4公里),但8公里 echo 给出一条消息,“行太长”,所以8192字节应该是有限制的。

    现在也测试了文件大小,在“echo end”之后,用“echo off”测试了数千行设置,它可以处理11 MB的文件(虽然完成需要几秒钟时间:)-这里没有限制。

    110MB也工作了。够了吗?;)

        2
  •  4
  •   SS64    10 年前

    命令行(或变量)的最大长度为 8191 characters .

        3
  •  2
  •   jeb    15 年前

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

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

        4
  •  2
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

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

    • 切换到 PowerShell .
    • 切换到数据驱动的应用程序,以便所有变量都保存在数据文件中( CSV ,文本,无论什么),因此您可以有一个较小的样板脚本,它打开数据文件并进行操作。
        5
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    17 年前

    它至少能工作2 GB。这些行是读的 直接从磁盘上的BAT文件(没有缓存 涉及)。我之所以这么说是因为:

    实际上,您可以在BAT文件运行时编辑它!而且它 即使文本编辑器可以重命名原始 版本并将新版本保存在 磁盘。只要小心不要在上面插入文本 当前正在执行的命令。行可以 更改/插入/删除当前正在执行的 命令和新行将被执行。我有 通常使用包含一长列表的BAT文件 wget命令,每个命令需要几十分钟才能执行。

        6
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    10 年前

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

    见 Maximum Line Length and Count for Batch Files & CONFIG.SYS

    推荐文章