作者 hoxily [dos] 2012-04-24 21:21 (点击下载)

  1. rem 曾经写的txt阅读器,bat脚本.
  2. rem 其中的if语句确实可以加(),让它执行一个语句块.
  3. @echo off
  4. title txt阅读器(by乙一一)
  5. goto makefilelist
  6. :makefilelist
  7. dir /b /on *.txt>filelist.hox
  8. echo 列表由此开始:>list.hox
  9. echo end>>filelist.hox
  10. set n=0
  11. goto forloop_first
  12. :forloop_first
  13. for /f %%v in (filelist.hox) do (
  14. if %%v==end (
  15. set max=0
  16. goto fileiszero
  17. )
  18. goto forloop_second
  19. )
  20. :fileiszero
  21. echo 无文件!请添加文件!
  22. pause
  23. del *.hox
  24. exit
  25. :forloop_second
  26. set /a n=%n%+1
  27. for /f "skip=%n%" %%v in (filelist.hox) do (
  28. if %%v==end goto setmax
  29. goto forloop_second
  30. )
  31. :setmax
  32. set max=%n%
  33. goto fileselect
  34. :fileselect
  35. for /f %%v in (filelist.hox) do (
  36. set n=0
  37. set num=1
  38. echo 1=%%v>>list.hox
  39. goto list_else
  40. )
  41. :list_else
  42. set /a n=%n%+1
  43. set /a num=%num%+1
  44. if %n%==%max% goto showfile
  45. for /f "skip=%n%" %%v in (filelist.hox) do (
  46. echo %num%=%%v>>list.hox
  47. goto list_else
  48. )
  49. :showfile
  50. echo 列表到此结束。>>list.hox
  51. echo 共有%max%个文件。>l.hox
  52. type list.hox>>l.hox
  53. more l.hox
  54. set /p n=输入标号:
  55. if %n%==1 goto one
  56. set /a n=%n%-1
  57. for /f "skip=%n%" %%v in (filelist.hox) do (
  58. set file=%%v
  59. goto else
  60. )
  61. :one
  62. for /f %%v in (filelist.hox) do (
  63. set file=%%v
  64. goto else
  65. )
  66. :else
  67. set filename=%file:~0,-4%
  68. title %filename%
  69. del *.hox
  70. goto main
  71. :main
  72. echo.
  73. echo.
  74. echo.
  75. echo 使用说明 a:建书签 c:色彩 e:编辑 f:文件 h:帮助 n:重读 q:走人 r:读书签 v:查看制作人
  76. echo 阅读中 q:退出阅读 =:显示行号(记录以做书签) 空格键:下页 回车键:下行
  77. set /p cmd=命令:
  78. if not defined cmd goto main
  79. if %cmd%==a goto addmark
  80. if %cmd%==c (
  81. cls
  82. echo 颜色由两个数字指定,第一个背景,第二个前景.每个数字可为以下任何值之一:0=黑 1=蓝 2=绿 3=湖蓝 4=红 5=紫 6=黄 7= 白 8=灰 9=淡蓝 a=淡绿 b=淡浅绿 c=淡红 d=淡紫 e=淡黄 f=亮白.颜色示例:0f 黑底白字.
  83. set /p cr=颜色代号:
  84. if not defined cr goto main
  85. color %cr%
  86. )
  87. if %cmd%==v (
  88. cls
  89. echo 乙一一制作,翻版必究.v.2009.08.06
  90. pause
  91. )
  92. if %cmd%==h (
  93. cls
  94. echo 1.请将纯文本文件放置于main.bat相同目录下;
  95. echo 2.建议文件名(除去扩展名)包含的字符:中文、英文、阿拉伯数字,不要含有符号如空格等,否则运行失败;
  96. echo 3.bat文件为文本文件,可编辑、优化;
  97. pause
  98. )
  99. if %cmd%==e write main.bat
  100. if %cmd%==r call mark-%filename%.bat
  101. if %cmd%==q exit
  102. if %cmd%==n more /c "%file%"
  103. if %cmd%==f goto makefilelist
  104. goto main
  105. :addmark
  106. set /p n=行号:
  107. if not defined n goto addmark
  108. set /a n=%n%-30
  109. echo more /c +%n% "%file%">mark-%filename%.bat
  110. goto main
  111. ///已做到自动读取文件数!///

提交下面的校正或者修改. (点击这里开始一个新的帖子)
姓名: 在 cookie 中记住我的名字

屏幕抓图:(jpeg 或 png)