免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 6321 | 回复: 6
打印 上一主题 下一主题

[代码行数统计] 一个小小的统计PHP代码行数的小BAT程序 [复制链接]

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-05-20 00:56 |只看该作者 |倒序浏览
[代码行数统计] 一个小小的统计PHP代码行数的小BAT程序

  放到一个PHP文件夹下面,点他,就会自动统计当前目录下面的PHP文件了。

  如果用记事本打开,还可以设置是否统计子目录的;也可以设置统计其它类型的代码!

  统计的标准是非回车空行!



  1. @echo off
  2. :config()
  3. :{
  4.         set count_type=0
  5.         :#  0:表示只统计当前目录
  6.         :#  1:表示只统计当前目录,包括子目录

  7.         set count_ext=.php
  8.         :#  表示统计文件的后缀名称
  9. :}

  10. :main()
  11. :{
  12.         if %count_type%==0 (set count_info=当前目录)
  13.         if %count_type%==1 (set count_info=当前目录,包括子目录)
  14.         echo 代码文件数与行数统计(HonestQiao 2006-5-20 0:14)
  15.         echo 统计方式:%count_info%
  16.         echo 文件后缀:%count_ext%
  17.         set /P PauseKey=开始统计(回车开始,Q退出)
  18.         if "%PauseKey%" == "Q" goto :EOF
  19.         if "%PauseKey%" == "q" goto :EOF
  20.         echo.

  21.         cd "%CD%"
  22.         set counts=0
  23.         set count=0
  24.         set tmp_list=%RANDOM%.tmp
  25.         copy /Y NUL %tmp_list% >nul 2>nul
  26.         if %count_type%==0 (dir/b | findstr "%count_ext%\>" > %tmp_list%)
  27.         if %count_type%==1 (dir/b/s | findstr "%count_ext%\>" > %tmp_list%)
  28.         call :function_files_count %tmp_list%
  29.         echo 文件总数:%counts%
  30.         echo 行数总计:%count%
  31.         del /Q %tmp_list%
  32.         echo.
  33.         set /P PauseKey=回车退出
  34.         @echo on
  35.         @goto :EOF
  36. :}

  37. :function_files_count
  38. :{
  39.         set counts_tmp=0
  40.         for /F %%l in ('type %1') do (call :function_files_add "%%l")
  41.         set /A counts=%counts%+%counts_tmp%
  42.         goto :EOF
  43. :}

  44. :function_files_add
  45. :{
  46.         set /A counts_tmp=%counts_tmp%+1
  47.         call :function_file_count %1
  48.         goto :EOF
  49. :}

  50. :function_file_count
  51. :{
  52.         echo 第%counts_tmp%个文件:%1
  53.         set count_tmp=0
  54.         for /F %%l in ('type %1') do (call :function_file_add %1)
  55.         set /A count=%count%+%count_tmp%
  56.         echo 小计行数:%count_tmp%
  57.         echo.
  58.         goto :EOF       
  59. :}

  60. :function_file_add
  61. :{
  62.         set /A count_tmp=%count_tmp%+1
  63.         goto :EOF
  64. :}
复制代码

[ 本帖最后由 HonestQiao 于 2006-5-20 01:38 编辑 ]

Snap1.jpg (84.46 KB, 下载次数: 43)

Snap1.jpg

code_count.rar

726 Bytes, 下载次数: 121

论坛徽章:
0
2 [报告]
发表于 2006-05-20 01:07 |只看该作者
沙发!呵呵!支持一哈QIAO!

论坛徽章:
0
3 [报告]
发表于 2006-05-20 01:08 |只看该作者
QIAO,不仅研究php,apache!连bat也不放过啊!^_^!佩服!

论坛徽章:
0
4 [报告]
发表于 2006-05-20 10:12 |只看该作者
在 Linux/BSD 下, 用以下一行即可, 不过这行也有点长

  1. find . -name "*.php" -exec wc -l {} \; | awk 'BEGIN {f=0;l=0} {f++;l=l+$1} END {printf("total: %d files, %d lines\n",f,l)}'
复制代码

论坛徽章:
1
技术图书徽章
日期:2013-12-05 23:25:45
5 [报告]
发表于 2006-05-20 10:43 |只看该作者
原帖由 hightman 于 2006-5-20 10:12 发表
在 Linux/BSD 下, 用以下一行即可, 不过这行也有点长
[code]
find . -name "*.php" -exec wc -l {} \; | awk 'BEGIN {f=0;l=0} {f++;l=l+$1} END {printf("total: %d files, %d lines\n",f ...


呵呵,dos里面也可整缩到一起,不过太长了也不好。
实际上,我那个里面只有几行做统计的事情。

论坛徽章:
0
6 [报告]
发表于 2006-05-20 11:04 |只看该作者
弓虽~~

BAT已经有点看不懂了~~晕死~~

论坛徽章:
0
7 [报告]
发表于 2009-06-04 17:40 |只看该作者
学习了
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP