【问题标题】:Is there a size limit to batch output files?批量输出文件有大小限制吗?
【发布时间】:2015-08-31 18:25:03
【问题描述】:

我写了一个非常简单的批处理文件,它将输出定向到一个文件。这是正文:

DATE /T > FileTreeList.txt
TIME /T >> FileTreeList.txt
cd >> FileTreeList.txt
tree /f /a >> FileTreeList.txt

当我在包含大量文件夹和文件的目录中运行批处理文件时,输出文件 (FileTreeList.txt) 在 ~621KB 处截断。如果我从命令模式运行批处理文件并将输出直接输出到文件,我会得到相同的结果。但是,如果我让结果显示在屏幕上,它会显示所有结果。

为什么会发生以及如何解决?

【问题讨论】:

  • 如果将所有命令括在括号中并且只打开一次 FileTreeList.txt 进行写入,是否会得到相同的结果? (date /t & time /t & cd & tree /f /a) >FileTreeList.txt
  • 您确定上面 4 行的批处理文件以与您在命令提示符窗口中手动运行最后一个命令并将结果输出到窗口时相同的权限(= 相同的用户帐户)运行吗?这对于遍历所有目录的访问权限很重要,这可能是对不同树列表的解释。
  • 我在批处理文件中尝试了您的四行,首先将当前目录切换到驱动器 C: 的根目录,然后在 Windows 7 x64 上将四个命令的输出写入F:\Temp\FileTreeList.txt。包含整个树的批处理文件执行完成后,列表文件有 8.3 MB。

标签: batch-file output filesize


【解决方案1】:

您的硬盘可能已满,只有大约 621KB 的可用空间;)

【讨论】:

    【解决方案2】:

    我猜那是当前文件夹的树。 如果您想要更大的文件,请尝试转到 %HOMEDRIVE% 并列出驱动器中的所有文件夹/文件。试试这个代码:

    @rem Turn the command line (C:>COMMAND before every command)
    @echo off
    rem Go to the homedrive (if not currently in)
    if "%cd:~0,1%"=="%homedrive:~0,1%" call %homedrive:~0,1%:
    rem go to the root of homedrive
    cd %HOMEDRIVE%
    rem execute your code
    DATE /T > FileTreeList.txt
    TIME /T >> FileTreeList.txt
    cd >> FileTreeList.txt
    tree /f /a >> FileTreeList.txt
    

    【讨论】:

      猜你喜欢
      • 2011-09-15
      • 2012-07-23
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      相关资源
      最近更新 更多