[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
初学批处理 也有楼主的一些想法 希望大家给点建议 下面的东西写了一整天喇
  1. @echo off
  2. setlocal Enabledelayedexpansion
  3. ::例如去某文本含有字符0的行并赋值给KK
  4. ::得到的值将寄存在KK1~ KK0为数组总个数
  5. call :G_getstrrow 0 a.txt kk
  6. echo %kk1%
  7. echo %kk0%
  8. pause
  9. exit
  10. ::1.取文本行中指定的第N行 G_getrowstr 行数 文本 返回寄存变量
  11. ::2.取文本的总行数 G_getrows 文本 返回寄存变量
  12. ::3.合并多个字符串字符串 G_mergestr 返回寄存变量 字符串1 字符串2 ...
  13. ::4.将某字符串插入某文本尾部 G_inserttail 文本 字符串1 字符串2 ...
  14. ::5.统计文本长度G_counttxt 文本 返回长度变量
  15. ::6.统计变量长度G_countstr 变量 返回长度
  16. ::7.取文本出现行G_getstrrow 字符串 文本 寄存 (返回数组总个数保存
  17. 在0位)
  18. ::7
  19. :G_getstrrow
  20. set G_getstrrowsum=
  21. set G_getstrrowtmp=
  22. set G_getstrrowtmps=
  23. set G_getstrrows=%3
  24. for /f "delims=" %%i in ('findstr "%1" %2') do (
  25. set /a "G_getstrrowsum+=1"
  26. set G_getstrrowtmp=%%i
  27. call :G_mergestr getstrrowtmpa %G_getstrrows% !G_getstrrowsum!
  28. call :G_getstrrow_set !getstrrowtmpa!
  29. )
  30. set %G_getstrrows%0=!G_getstrrowsum!
  31. set G_getstrrows=
  32. set G_getstrrowtmp=
  33. set G_getstrrowtmps=
  34. goto :eof
  35. :G_getstrrow_set
  36. set G_getstrrowtmps=%1
  37. set %G_getstrrowtmps%=!G_getstrrowtmp!
  38. goto :eof
  39. ::6
  40. :G_countstr
  41. set G_string=%1
  42. set G_countstr=%2
  43. :G_countstrstart
  44. if not "%G_string%"=="" (
  45. set /a %G_countstr%+=1
  46. set "G_string=%G_string:~1%"
  47. goto G_countstrstart
  48. )
  49. set G_string=
  50. set G_countstr=
  51. goto :eof
  52. ::5
  53. :G_counttxt
  54. set G_counttxt=
  55. set G_count=%2
  56. for /f "delims=" %%i in (%1) do set G_counttxt=!G_counttxt!%%i
  57. :G_counttxtstart
  58. if not "%G_counttxt%"=="" (
  59. set /a %G_count%+=1
  60. set "G_counttxt=%G_counttxt:~1%"
  61. goto G_counttxtstart
  62. )
  63. set G_count=
  64. set G_counttxt=
  65. goto :eof
  66. ::1
  67. :G_getrowstr
  68. set %3=
  69. for /f "skip=%1 delims=" %%i in (%2) do (
  70. set %3=%%i
  71. goto :eof
  72. )
  73. ::2
  74. :G_getrows
  75. set %2=0
  76. for /f %%i in ('findstr /n .* %1') do (
  77. set /a %2=%2+1
  78. )
  79. goto :eof
  80. ::3
  81. :G_mergestr
  82. set G_mergestr=%1
  83. :G_getstr
  84. if "%2"=="" goto mergestrend
  85. set G_mergestrs=%G_mergestrs%%2
  86. shift /2
  87. goto G_getstr
  88. :mergestrend
  89. set %G_mergestr%=%G_mergestrs%
  90. set G_mergestrs=
  91. goto :eof
  92. ::4
  93. :G_inserttail
  94. set G_inserttailtxt=%1
  95. :getG_inserttail
  96. if "%2"=="" goto G_inserttailend
  97. echo %2 >>%G_inserttailtxt%
  98. shift /2
  99. goto getG_inserttail
  100. :G_inserttailend
  101. set G_inserttailtxt=
  102. goto :eof
复制代码

TOP

返回列表