【问题标题】:How to get just the last two lines of standard output of command DIR?如何获取命令 DIR 的最后两行标准输出?
【发布时间】:2019-12-28 22:38:56
【问题描述】:

我正在执行的命令如下:

dir >> dir.txt

我只对将某些行重定向到 txt 感兴趣,例如最后两行。我怎样才能做到这一点?我想到了findstr,但我不知道怎么做。

【问题讨论】:

  • 除此之外,排序顺序没有记录(至少没有通过帮助命令),因此您可能需要指定它。例如:dir /O Dhelp dir
  • 这显然是一个XY problem。看起来您想要获取目录中的文件数或文件的总字节数或目录中的目录数或驱动器上的可用空间字节数,因为这是在最后两行输出的标准dir 输出。您应该询问如何获取这些数据,而不是如何仅获取dir 输出的最后两行。在 Stack Overflow 上多次发布批处理文件代码以获取所有这些数据。
  • @RomanRacca,请先阅读What should I do when someone answers my question?,然后再考虑发布的答案之一是否能解决您发布的问题。谢谢。

标签: cmd directory findstr


【解决方案1】:

一个简单的 匹配将隔离这两行,因为它们是仅有的以两个空格开头的两行:

Dir | FindStr /BC:"  " >> "dir.txt"

【讨论】:

    【解决方案2】:

    假设你在Windows下,你可以从https://sourceforge.net/projects/tailforwin32/使用Unix tail命令的Win32端口,然后发出管道命令:

    dir | tail --lines=2
    

    这显示了最后两行

    希望对你有帮助

    【讨论】:

    【解决方案3】:

    这可以通过您机器上已有的 PowerShell 轻松完成。

    powershell -NoLogo -NoProfile -Command "& cmd.exe /C dir | Select-Object -Last 2 | Out-File -FilePath '.\dir.txt' -Encoding ascii -Append"
    

    或者……

    powershell -NoLogo -NoProfile -Command "& cmd.exe /C dir | Select-Object -Last 2" >>dir.txt
    

    【讨论】:

      【解决方案4】:

      这是一个简单的批处理文件,用于输出命令dir 标准输出的最后两行,其中包含与语言相关的信息

      • 目录中的文件数,
      • 目录中文件的总字节数,
      • 目录中的子目录数,
      • 分区上的可用空间(以字节为单位)。

      dir 默认排除设置了隐藏属性的目录和文件,因为如果根本不使用dir 选项/A,则使用隐式/A-H

      这是一个批处理文件,用于显示dir 的最后两行输出,在当前目录上执行时没有任何参数,当然可以与包含批处理文件的目录不同。

      @echo off
      setlocal EnableExtensions EnableDelayedExpansion
      set "SummaryFiles="
      set "SummaryFolders="
      for /F delims^=^ eol^= %%I in ('dir') do (
          set "SummaryFiles=!SummaryFolders!"
          set "SummaryFolders=%%I"
      )
      if defined SummaryFiles echo !SummaryFiles!
      if defined SummaryFolders echo !SummaryFolders!
      pause
      endlocal
      

      两个echo完成的输出也可以重定向到一个文本文件中使用例如

      (   if defined SummaryFiles echo !SummaryFiles!
          if defined SummaryFolders echo !SummaryFolders!
      ) >DirectorySummary.txt
      

      要了解所使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读每个命令显示的所有帮助页面。

      • dir /?
      • echo /?
      • endlocal /?
      • for /?
      • if /?
      • pause /?
      • set /?
      • setlocal /?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多