Windows 批处理文件用于复制和统计文件名并输出到单个文件

Windows 批处理文件用于复制和统计文件名并输出到单个文件

我有一个文件夹,里面有多个包含记录的文件。

我想要一个 Windows 批处理脚本,它将把所有“文件名”连同所有文件中存在的记录数一起复制到一个输出文件中。

答案1

参考查找在文件中搜索文本字符串并显示找到该字符串的所有行。

find /v /c "" *.* > result.txt

怎么运行的

  • /v反转搜索(因此当我们不搜索任何内容时,我们会找到所有行)
  • /c计数匹配
  • ""不匹配任何内容
  • *.*搜索所有文件
  • > result.txt重定向输出

限制

  • 假设 Windows 行尾分隔符正常\r\n
  • 尽管 FIND 可用于扫描大文件,但它不会检测到单行上超过 1070 个字符的任何字符串(没有回车符\r),这使得它在搜索二进制或 XML 文件类型时用途有限。

为了删除多余的-空行,我们可以将上述命令包装成for如下结构:

for /f "usebackq tokens=2-3" %a in (`find /v /c "" *.*`) do echo %a %b >> result.txt

答案2

非常感谢您的回复。除了我最初的要求之外,场景是每天在特定位置创建一个文件夹(YYYYMMDD 格式)。此文件夹包含一些有/无记录的文件。

由于这是每日操作,我将每天使用这个批处理文件。每当我在特定日期执行此批处理文件时,它都会检查将在该特定日期创建的文件夹,然后给出一个包含文件名和记录数的输出文件

有没有什么办法可以达到这个要求呢?

答案3

仅查看文件名列表:

dir * /b /s > files.txt

相关内容