batch-file - 批处理 - 计算当前文件夹和子文件夹中文件的行数

标签 batch-file recursion counting

这是我的脚本,它的作用是从当前文件夹中的 cpp、h、hpp、cs、c 文件中计算行数。

我想做的是也计算子文件夹,但似乎我无法做到这一点。

我做了一些递归尝试,但我无法在当前代码中实现它。

call::CountLines Modules\Output\HTML.Tidy\
goto:eof

:CountLines
setlocal
set /a totalNumLines = 0
SETLOCAL ENABLEDELAYEDEXPANSION
for /r %%f in (%~1*.cpp %~1*.h %~1*.hpp %~1*.cs %~1*.c) do (
for /f %%C in ('Find /V /C "" ^< %%f') do set Count=%%C
set /a totalNumLines+=!Count!
)

echo Total number of cod lines for %~1: %totalNumLines% >> log.txt

如果您知道解决方案或更好的方法,请告诉我。

问候,

斯特凡

最佳答案

路径信息不得在 IN() 内使用条款时 FOR /R .根路径应遵循 /R选项。

@echo off

:CountLines
setlocal
set /a totalNumLines = 0
for /r %1 %%F in (*.cpp *.h *.hpp *.cs *.c) do (
  for /f %%N in ('find /v /c "" ^<"%%F"') do set /a totalNumLines+=%%N
)

echo Total number of code lines for %1 = %totalNumLines% >>log.txt

我不记得有什么区别了,但是 type file|find /c /v ""find /c /v "" <file可以给出不同的结果。我不记得触发条件是什么,或者哪个更好。

关于batch-file - 批处理 - 计算当前文件夹和子文件夹中文件的行数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704959/

相关文章:

c++ - 如何计算结构数组中唯一元素的数量?

php - 编写更快的组合算法

recursion - 如何访问 OCaml 递归模块中定义的类型的字段?

java - 即使有 return 语句,递归也永远不会结束

c - 这个 C 函数如何计算字符串中的单词数?

language-agnostic - 如何计算具有重复的集合中所有可能的唯一子集的总数?

windows - WMIC 在命令行和 Windows 资源管理器中的不同行为

windows - 从 Windows 批处理文件设置系统环境变量?

batch-file - WMIC 返回奇数序列号

excel - 以编程方式将最小值/最大值添加到 Excel 右下角的状态栏