Board logo

标题: [网络连接] [分享]批处理校园IP共享设置软件 [打印本页]

作者: mxxcgzxxx    时间: 2011-5-30 10:13     标题: [分享]批处理校园IP共享设置软件

两个程序组成,刚写成不久还有待缩水,忘各位大侠帮小弟把关一下
主程序:为读取设置文件生成设置菜单
修改程序:负责修改和重建\备份\还原设置文件.

主程序:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. taskkill /f /im explorer.exe
  4. start explorer.exe
  5. title  中小学校校园网IP设置
  6. MODE con: COLS=80 lines=20
  7. color e0
  8. echo      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  9. echo      $$$$$$                                                          $$$$$$
  10. echo      $$$$$$                 中小学校园网络IP设置程序                 $$$$$$
  11. echo      $$$$$$                                                          $$$$$$
  12. echo      $$$$$$                       V.1.0                              $$$$$$
  13. echo      $$$$$$                      2011-05                             $$$$$$
  14. echo      $$$$$$                                                          $$$$$$
  15. echo      $$$$$$                                                          $$$$$$
  16. echo      $$$$$$                                                          $$$$$$
  17. echo      $$$$$$                出品:    黑雨工作室                      $$$$$$
  18. echo      $$$$$$                                                          $$$$$$
  19. echo      $$$$$$                电邮:     heimao007@sina.com              $$$$$$
  20. echo      $$$$$$                                                          $$$$$$
  21. echo      $$$$$$                                                          $$$$$$
  22. echo      $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  23. pause>nul
  24. echo.
  25. echo       开始校验文件完整性,请稍候!如果此目录下的文件过多可能会影响速度!
  26. :前奏
  27. :: -----------------------------------------------------------------------------------
  28. :校验原文件
  29. set file1=computer.ip
  30. set file2=I级菜单.menu
  31. set file3=II级菜单.menu
  32. set file4=工作组.menu
  33. set file5=网络参数.menu
  34. set file6=网络权限.menu
  35. for /l %%1 in (1,1,6) do (
  36.   set yz%%1=0
  37.   for /r %%i in (*.*) do if "%%~nxi"=="!file%%1!" set yz%%1=1
  38.   if "!yz%%1!"=="0" (
  39.        echo 文件不完整,无法进行设置!
  40.        echo             请使用参数修改器还原或修复软件!
  41.        echo             按任意键后退出本软件!      
  42.        pause
  43.        )
  44.   )
  45. :: 读取网络参数,并以W开头函数命名!
  46. for /f "eol=E tokens=1,3 delims= " %%i in (网络参数.menu) do set w%%i=%%j
  47. :: 读取工作组参数,并以G开头函数命名!
  48. for /f "eol=E tokens=1,2 delims= " %%i in (工作组.menu) do set g%%i=%%j
  49. :1
  50. :: ----------------------------读取一级菜单并输出成选项----------------------------------
  51. cls
  52. set "describe="
  53. echo.
  54. echo.
  55. echo.
  56. set r=1
  57. for /f "eol=E tokens=1 delims= " %%i in (I级菜单.menu) do (
  58.       echo !r! %%i
  59.       set a!r!=%%i
  60.       set /a r+=1
  61.       )
  62. echo %r% 退出
  63. echo.
  64. echo.
  65. echo.
  66. echo.
  67. set /p p=请选择:
  68. if %p%==%r% goto :eof
  69. cls
  70. set r=1
  71. for /f "eol=E tokens=1-7 delims= " %%1 in (I级菜单.menu) do (
  72.            if "%p%"=="!r!" (
  73.                  set menu2=%%1
  74.                  set gzz=%%2
  75.                  set qx=%%3
  76.                  set szfa=%%4
  77.                  set qsip=%%5
  78.                  set jsip=%%6
  79.                  set smwz=%%7
  80.                  goto :2
  81.                  )
  82.             set /a r+=1
  83.             )
  84. goto :1
  85. :2
  86. goto :%szfa%
  87. echo 此选项未配置设置方案,请联系管理员设置I级菜单!
  88. pause
  89. goto:1
  90. :禁止
  91. :: -------------------------------------------------禁----止-----------------------------
  92. echo.
  93. echo.
  94. echo.
  95. echo.
  96. echo 配置部门 : %menu2%
  97. echo.
  98. echo 配置说明 : %smwz%
  99. echo.
  100. echo 设置方案 : %szfa%
  101. echo.
  102. echo 起始IP    : %wy%%qsip%
  103. echo 结束IP    : %wy%%jsip%
  104. echo.
  105. echo.
  106. echo.
  107. echo.
  108. pause
  109. goto :1
  110. :手动
  111. :: -----------------------------------------------手----动-------------------------------
  112. cls
  113. echo.
  114. echo                          %menu2%IP设置
  115. echo.
  116. echo        备用IP:范围(%wy%%qsip% 至 %jsip% ) ,请输入相应的数字!
  117. echo.
  118. echo        需要返回主菜单请输入 00
  119. echo.
  120. echo.
  121. set/p ip=您要设置的备用IP是:
  122. if "%ip%"=="00" goto :1
  123. @:: 判断是否在输入区间
  124. for /l %%i in (%qsip%,1,%jsip%) do if "%ip%"=="%%i" goto :sdmm
  125. echo.
  126. echo.
  127. echo -------------------------------------------
  128. echo   错误,超出范围!按任意键重新填入.
  129. echo.
  130. pause
  131. goto :手动
  132. :sdmm
  133. cls
  134. echo.
  135. echo.
  136. echo 输入您想要计算机名!
  137. echo.
  138. echo      注意事项:计算机名在网内不可重名,最好以部门职位命令名同时
  139. echo               如果需要标明是谁用的电脑请在备注内说明!
  140. echo               名字与备注都不要超过6个中文字或12个英文字!
  141. echo.
  142. set /p computername=计算机名:
  143. if "%computername%"=="" goto :sdmm
  144. echo.
  145. set/p describe=备注:
  146. goto :通用配置
  147. :学生
  148. :: -----------------------------------------------学-----生------------------------------
  149. cls
  150. title    %menu2%IP设置,请选择。
  151. echo.
  152. set /a js=%jsip%-%qsip%
  153. echo           教师机请输入0,学生机输入相应的机号1~%js%
  154. echo.
  155. set/p jh=您要设置的机号是:
  156. if "%jh%"=="0" goto :电脑室教师机
  157. @:: 判断是否在输入区间
  158. for /l %%i in (1,1,%js%) do if "%jh%"=="%%i" goto :szssj
  159. goto :学生
  160. :szssj
  161. set/a ip=%jh%+%qsip%
  162. set computername=%jh%号学生
  163. set describe=%computername%
  164. goto :通用配置
  165. :电脑室教师机
  166. set ip=10
  167. set computername=电脑室主机
  168. set describe=%computername%
  169. set qx=6
  170. goto :通用配置
  171. :菜单
  172. :: ------------------------------------------------菜-----单-----------------------------
  173. cls
  174. echo.
  175. echo.
  176. echo.
  177. echo                   二级菜单  %menu2%
  178. set r=1
  179. echo.
  180. echo.
  181. echo.
  182. for /f "eol=E tokens=1,2 delims= " %%1 in (II级菜单.menu) do (
  183.          if "%menu2%"=="%%1"  (
  184.                echo !r! %%2
  185.                set m!r!=%%2
  186.                set /a r+=1
  187.                )
  188.          )
  189. echo %r% 退出
  190. echo.
  191. echo.
  192. echo.
  193. echo.
  194. set /p p=请选择:
  195. if %p%==%r% goto :1
  196. :cls
  197. for /f "eol=E tokens=2 delims= " %%1 in (II级菜单.menu) do (
  198.              if "!m%p%!"=="%%1" (
  199.                  set menu2=%%1
  200.                  goto :直配
  201.                  )
  202.              )
  203. goto :菜单
  204. :直配
  205. :: -------------------------------------------------直------配---------------------------
  206. cls
  207. set r=1
  208. echo.
  209. echo.
  210. echo.
  211. echo                   三级菜单  %menu2%
  212. echo.
  213. echo.
  214. echo.
  215. for /f "eol=E tokens=1,2 delims= " %%1 in (computer.ip) do (
  216.             if "%menu2%"=="%%1"  (
  217.                   echo !r! %%2
  218.                   set m!r!=%%2
  219.                   set /a r+=1
  220.                   )
  221.             )
  222. echo %r% 退出
  223. echo.
  224. echo.
  225. echo.
  226. echo.
  227. set /p p=请选择:
  228. if %p%==%r% goto :1
  229. :cls
  230. for /f "eol=E tokens=2,3,4,5 delims= " %%1 in (computer.ip) do (
  231.              if "!m%p%!"=="%%1" (
  232.                   set computername=%%1
  233.                   set ip=%%2
  234.                   set gzz=%%3
  235.                   set qx=%%4
  236.                   goto :通用配置
  237.                   )
  238.               )
  239. goto :直配
  240. :通用配置
  241. :: --------------------------------------------------通--用--配--置----------------------
  242. title  将要修改的信息如下
  243. :: 判断权限
  244. cls
  245. if "%describe%"=="" set describe=%menu2%用机
  246. @echo.
  247. @echo.
  248. @echo.
  249. @echo.
  250. echo 配置部门 : %menu2%
  251. @echo.
  252. @echo 本机名称   : %computername%
  253. @echo.
  254. @echo 计算机描述 : %describe%
  255. @echo.
  256. @echo 工作组名   : !g%gzz%!
  257. @echo.
  258. @echo 网络权限为 : %qx%
  259. @echo.
  260. @echo 本 机 I P : %wy%%ip%
  261. @echo.
  262. @echo.
  263. @echo.
  264. @echo           以上信息是否准确?
  265. @echo.
  266. @echo          1、是,可以开始写入 !
  267. @echo          2、否,我要重新开始选择!
  268. set/p p=   您的选择:
  269. echo.
  270. if "%p%"=="1" goto :写入
  271. if "%p%"=="2" goto :1
  272. goto :通用配置
  273. :写入
  274. echo 读取权限
  275. set "yhmm="
  276. for /f "eol=E tokens=1-3 delims= " %%1 in (网络权限.menu) do (
  277.             if "%qx%"=="%%1" (
  278.                   set wlyh=%%2
  279.                   set gxpf=%%3
  280.                   )
  281.             )
  282. title  开始修改信息,请稍后...
  283. @echo 通用IP设置(计算机名、网关、掩码、DNS、工作组)
  284. echo 正在更改计算机名请稍后...... 改名为:%computername%
  285. echo.
  286. reg add HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName /v ComputerName /t REG_SZ /d %computername% /f > nul
  287. reg add HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName /v ComputerName /t REG_SZ /d %computername% /f > nul
  288. reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v Hostname /t REG_SZ /d %computername% /f > nul
  289. reg add HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /v "NV Hostname" /t REG_SZ /d %computername% /f > nul
  290. echo.
  291. pause
  292. set u
  293. echo 设置网关
  294. netsh interface ip set address name="本地连接" gateway=%wy%%wg% gwmetric=0
  295. echo.
  296. @echo 设置本机IP和掩码
  297. netsh interface ip set address name="本地连接" source=static addr=%wy%%ip%  mask=%wym%
  298. echo.
  299. @echo 设置主DNS
  300. netsh interface ip set dns name="本地连接" source=static addr=%wdns%
  301. echo.
  302. @echo 设置备用DNS
  303. netsh interface ip add dns "本地连接" %wbdns%
  304. @echo.
  305. echo 开始设置计算机名及工作组, 请稍候.......
  306. echo 加入工作组 工作组为:!g%gzz%!
  307. wmic computersystem where Name="%COMPUTERNAME%" call JoinDomainOrWorkgroup Name="!g%gzz%!"
  308. echo.
  309. @echo 修改计算机描述
  310. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\lanmanserver\Parameters" /v srvcomment /t reg_sz /d %describe% /f
  311. net config server /SRVCOMMENT:"%describe%"
  312. @echo   开始设置网络映射权限,请稍候
  313. pause
  314. cls
  315. :end
  316. @echo off
  317. :: 删除原有映射
  318. cls
  319. for %%1 in (I J K L M N O P Q R S T U V W X Y Z) do net use %%1: /delete
  320. cls
  321. echo.
  322. echo.
  323. echo 读取权限
  324. set "yhmm="&set /p yhmm=请输入"%wlyh%"密码:
  325. echo 映射网盘
  326. set pfs=0
  327. for  /l %%i in (0,1,23) do  (if "!gxpf:~%%i,1!"=="" goto :改盘名)&(set pfm=!gxpf:~%%i,1!)&(for %%1 in (!pfm!) do net use !pfm!: \\%wy%%whwq%\!wp%%1! /user:%wlyh% %yhmm%)&(set pfs=%%i)
  328. :改盘名
  329. @echo  磁盘改名
  330. label c:系统
  331. label d:软件
  332. label e:数据
  333. label f:备份
  334. for  /l %%i in (0,1,%pfs%) do (set pfm=!gxpf:~%%i,1!)&(for %%1 in (!pfm!) do reg add HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MountPoints2\##%wy%%hwq%#!wp%%1! /v _LabelFromReg /t REG_SZ /d !wp%%1! /f > nul)
  335. @echo 设置完成
  336. @echo ---------------------------------------退出----------------------------------------------------
  337. pause
  338. taskkill /f /im explorer.exe
  339. start explorer.exe
  340. :test
复制代码
修改程序:
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. MODE con: COLS=100 lines=40
  4. color e0
  5. for /l %%1 in (0,1,5) do echo.
  6. echo              $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  7. echo              $$$$$$                                                          $$$$$$
  8. echo              $$$$$$            中小学校园网络IP设置配套修改程序              $$$$$$
  9. echo              $$$$$$                                                          $$$$$$
  10. echo              $$$$$$                       V.1.01                             $$$$$$
  11. echo              $$$$$$                      2011-05                             $$$$$$
  12. echo              $$$$$$                                                          $$$$$$
  13. echo              $$$$$$                                                          $$$$$$
  14. echo              $$$$$$                                                          $$$$$$
  15. echo              $$$$$$                出品:    黑雨工作室                      $$$$$$
  16. echo              $$$$$$                                                          $$$$$$
  17. echo              $$$$$$                电邮:     heimao007@sina.com              $$$$$$
  18. echo              $$$$$$                                                          $$$$$$
  19. echo              $$$$$$                                                          $$$$$$
  20. echo              $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  21. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  22. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$            初始数据区             $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  23. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  24. :序
  25. set "kk= "
  26. set file1=computer.ip
  27. set file2=I级菜单.menu
  28. set file3=II级菜单.menu
  29. set file4=工作组.menu
  30. set file5=网络参数.menu
  31. set file6=网络权限.menu
  32. set timef=time.dat
  33. call :校验原文件
  34. if "%yz%"=="6" goto :前言
  35. call :校验备份文件
  36. if "%bak%"=="6" (
  37.         echo 原文件不完整,请使用还原或重建
  38.         pause
  39.         goto :原文件损坏
  40.         )
  41. echo 文件不完整,请进行设置文档重建!
  42. pause
  43. goto :初始设置   
  44. :: --------------------------------------------------------------------------------------------------------------------------
  45. :前言
  46. :: --------------------------------------------------------------------------------------------------------------------------
  47. :测试区
  48. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  49. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$           主菜单程序区            $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  50. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  51. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  52. :正文
  53. title  中小学校校园局域网IP设置参数修改软件----黑雨工作室
  54. for /l %%1 in (0,1,2) do echo.
  55. echo                  特别提示:   使用本软件请谨慎行事,如无必要请现在关闭!
  56. for /l %%1 in (0,1,5) do echo.
  57. pause>nul
  58. :0
  59. set p=0
  60. cls
  61. for /l %%1 in (0,1,3) do echo.
  62. echo 1 还原设置文档
  63. echo.
  64. echo 2 备份设置文档
  65. echo.
  66. echo 3 修改设置文档
  67. echo.
  68. echo 4 重建设置文档
  69. echo.
  70. echo 5 退出软件
  71. for /l %%1 in (0,1,3) do echo.
  72. set /p p= 请选择:
  73. goto :%p%
  74. :1
  75. call :还原
  76. goto :0
  77. :2
  78. call :备份
  79. goto :0
  80. :3
  81. call :修改
  82. goto :0
  83. :4
  84. call :重建
  85. goto :0
  86. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  87. :还原
  88. title  正在进行还原……
  89. cls
  90. for /l %%1 in (1,1,6) do copy  bak%%1.dat  !file%%1!
  91. echo 还原完成
  92. pause>nul
  93. goto :eof
  94. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  95. :备份
  96. title  正在进行备份……
  97. cls
  98. for /l %%1 in (1,1,6) do copy !file%%1! bak%%1.dat  
  99. echo 备份完成
  100. pause>nul
  101. goto :eof
  102. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  103. :重建
  104. title  重建软件系统文档
  105. set p=0
  106. cls
  107. for /l %%1 in (0,1,3) do echo.
  108. echo 1 快速还原默认初始值
  109. echo.
  110. echo 2 手动重建文档
  111. echo.
  112. echo 3 退出
  113. for /l %%1 in (0,1,3) do echo.
  114. set /p p= 请选择:
  115. if %p%==1 goto :cj1
  116. if %p%==2 goto :cj2
  117. if %p%==3 set p=0&goto :eof
  118. goto :重建
  119. :cj1
  120. for /l %%1 in (1,1,6) do call :file%%1
  121. call :默认
  122. echo 已还原成初始值.
  123. pause>nul
  124. set p=0&goto :eof
  125. :cj2
  126. set p=0
  127. cls
  128. for /l %%1 in (0,1,3) do echo.
  129. echo. 手动重建文档方法说明
  130. echo.
  131. echo. 手动重建文档将会把所有文档清空,但并不放入初始设置,也就是6个空文件头!
  132. echo. 六个文件分别为:
  133. for /l %%1 in (1,1,6) do echo !file%%1!
  134. echo. 可以在软件目录下找到,使用文本文档打开并按说明要求编辑即可!
  135. echo.
  136. echo. 注意:
  137. echo. 1、由于文本之间的关联性要求您对您的网络设置有个全面的认识!
  138. echo. 2、如果没有按要求编写有可能会出现错误!
  139. echo. 3、本操作执行后,只可使用还原功能修复错误,请慎重!
  140. echo. 4、请先备份原有软件资料!如无把握请使用软件进行修改!
  141. pause>nul
  142. for /l %%1 in (0,1,3) do echo.
  143. set /p p= [1]继续 [2或其它]取消
  144. if %p%==1 goto :cj21
  145. set p=0&goto :eof
  146. :cj21
  147. for /l %%1 in (1,1,6) do call file%%1
  148. pause>nul
  149. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  150. :校验原文件
  151. set yz=0
  152. for /l %%1 in (1,1,6) do (
  153.       if EXIST !file%%1! (set /a yz+=1) ELSE (echo 文件 !file%%1! 不存在!)
  154.       )
  155. goto :eof
  156. :: --------------------------------------------------------------------------------------------------------------------------
  157. :校验备份文件
  158. set bak=0
  159. for /l %%1 in (1,1,6) do (
  160.      if EXIST bak%%1.dat (set /a bak+=1) ELSE (echo 文件 !file%%1! 备份不存在!)
  161.      )
  162. goto :eof
  163. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  164. :初始设置
  165. set p=0
  166. cls
  167. for /l %%1 in (0,1,3) do echo.
  168. echo 1 重建文档
  169. echo 2 退出软件
  170. for /l %%1 in (0,1,3) do echo.
  171. set /p p= 请选择
  172. if %p%==1 call :重建&goto :前言
  173. pause
  174. goto :eof
  175. :: --------------------------------------------------------------------------------------------------------------------------
  176. :原文件损坏
  177. set p=0
  178. echo 1 还原  
  179. echo 2 重建文档
  180. echo 3 退出软件
  181. for /l %%1 in (0,1,3) do echo.
  182. set /p p= 请选择
  183. if %p%==1 call :还原&goto :前言
  184. if %p%==2 call :重建&goto :前言
  185. pause
  186. goto :eof
  187. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  188. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$         修改软件主程序区          $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  189. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  190. :修改
  191. title  手动修改软件参数
  192. cls
  193. set p=0
  194. for /l %%1 in (0,1,3) do echo.
  195. echo 参数文档修改
  196. echo.
  197. echo. 1 修改一级菜单
  198. echo.
  199. echo. 2 修改二级菜单
  200. echo.
  201. echo. 3 修改具体IP分配
  202. echo.
  203. echo. 4 修改工作组参数 (危险)
  204. echo.
  205. echo. 5 修改网络权限 (危险)
  206. echo.
  207. echo. 6 修改网络参数 (危险)
  208. echo.
  209. echo. 7 退  出
  210. echo.
  211. set /p p= 请选择:
  212. if %p%==1 call :f2
  213. if %p%==2 call :f3
  214. if %p%==3 call :f1
  215. if %p%==4 call :f4
  216. if %p%==5 call :f6
  217. if %p%==6 call :f5
  218. if %p%==7 set p=0&goto :eof
  219. goto :修改
  220. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  221. :f1
  222. title  修改具体IP分配信息
  223. cls
  224. for /l %%1 in (0,1,3) do echo.
  225. echo.1)本设置将会修改软件的IP设置信息,具体参数有:分类、机名、IP、工作组、权限;
  226. echo.
  227. echo.2)本设置为主菜单方案为直配、菜单以及二级菜单的分类选项而服务;
  228. echo.
  229. echo.3)在设置时应注意格式,如IP为1~254的数字,并且不可以重复使用!
  230. echo.
  231. echo.4)要正确使用本设置请先确定已设置好一级、二级菜单、工作组以及网络权限和参数!
  232. echo.
  233. pause>nul
  234. set file=%file1%
  235. set ne=1
  236. set qk=0
  237. call :fun 分类 计算机名 IP 工作组 权限等级
  238. call :max 18 18 11 16 3 0 0 0
  239. call :lmx 15 15 3  14 3 0 0 0
  240. call :min 1  1  1  1  1 0 0 0
  241. call :auo 2  1  1  3  4 0 0 0
  242. :look1
  243. call :查看文件 1 %file% 18
  244. :p1
  245. set p=0
  246. echo.************************************************************************
  247. set /P p= [1]查看 [2]添加 [3]修改 [4]删除 [5]退出 请选择:
  248. if %p%==1 goto :look1
  249. if %p%==2 goto :newf1
  250. if %p%==3 goto :editf1
  251. if %p%==4 call :删除 1 18
  252. if %p%==5 set p=0&goto :eof
  253. goto :p1
  254. :newf1
  255. call :前空 %qk%
  256. set "dat0=%dat%"
  257. for /l %%z in (1,1,5) do (
  258.         call :edf1%%z
  259.         if "%next%"=="1" set p=0&goto :P1
  260.         )
  261. set "dat=%dat0%%dat1%%dat2%%dat3%%dat4%%dat5%"
  262. echo.
  263. echo.E --分类----------计算机名---------IP地址-------工作组---------权限
  264. echo.%dat%
  265. echo.
  266. echo.以上数据是否正确?
  267. set p=0
  268. set /p p=[1]是,写入。[2]否,重写。[其它]退出。
  269. if %p%==1 echo.>>%file%&echo %dat%>>%file%
  270. if %p%==2 goto :newf1
  271. goto :p1
  272. :: --------------------------------------------------------------------------------------------------------------------------
  273. :editf1
  274. cls
  275. set edit=0
  276. echo 请看清您需要修改的行号,并记下:
  277. pause>nul
  278. call :查看文件 1 %file% 18
  279. echo =======================================
  280. set /p edit=请输入您需要修改的行号(0 退出):
  281. if %edit%==0 goto :p1
  282. echo.
  283. for /l %%1 in (1,1,%n%) do if %edit%==%%1 goto :editf11
  284. echo 您所输入的行号不存在!请看清再输入!
  285. pause>nul
  286. goto:editf1
  287. :editf11
  288. set a=1
  289. set b=%edit%
  290. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  291.       if !a!==%edit% (
  292.            call :lookf1 %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  293.            call :dat %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  294.            goto :editf12
  295.            )
  296.       set /a a+=1
  297.       )
  298. :editf12
  299. set p1=0
  300. echo.
  301. echo 选择您要修改的那项数据?
  302. echo [1]%fun1%     [2]%fun2%     [3]%fun3%    [4]%fun4%    [5]%fun5%    [6]下一步   [7]取消
  303. set /p p1=请选择:
  304. if %p1%==6 goto :editf13
  305. if %p1%==7 goto goto :p1
  306. for /l %%z in (1,1,5) do if %p1%==%%z (
  307.             call :edf1%%z
  308.             echo.
  309.             echo 修改的情况如下:
  310.             call :lookf1 !dat1! !dat2! !dat3! !dat4! !dat5! !dat6! !dat7! !dat8!
  311.             goto :editf12
  312.             )
  313. echo 您的选择超出范围!
  314. pause>nul
  315. goto goto :editf12
  316. :editf13
  317. call :前空 %qk%
  318. set "dat0=!dat!"
  319. for /l %%z in (1,1,5) do (
  320.     call :test "!dat%%z!" "!lmx%%z!"
  321.     call :补齐字符数 "!dat%%z!" "!max%%z!" "!len!"
  322.     set "dat%%z=!dat!"
  323.     )
  324. set "dat=!dat0!!dat1!!dat2!!dat3!!dat4!!dat5!"
  325. call :edit "!edit!" "!dat!"
  326. call :替换 1 18
  327. goto :p1
  328. :: --------------------------------------------------------------------------------------------------------------------------
  329. :edf11
  330. call :一级菜单 1
  331. call :test %dat% %lmx1%
  332. call :补齐字符数 "%dat%" "%max1%" "%len%"
  333. set "dat1=%dat%"
  334. goto :eof
  335. :edf12
  336. call :输入文字 %fun2% %max2% %lmx2% %min2%
  337. set "dat2=%dat%"
  338. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  339.               set oldat=%%2
  340.               for %%i in (%dat%) do if "%%i"=="!oldat!" (
  341.               echo 计算机名重复,请重写!
  342.               pause>nul
  343.               goto :edf12
  344.               )
  345.        )
  346. goto :eof
  347. :edf13
  348. call :输入文字 %fun3% %max3% %lmx3% %min3%
  349. set /a ip=%dat%
  350. for /l %%1 in (1,1,254) do if %ip%==%%1 goto :edf131
  351. echo IP格式非法,请用1~254的数字!
  352. pause>nul
  353. goto :edf13
  354. :edf131
  355. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do if %ip%==%%3 (
  356.               echo IP重复,请重写!
  357.               pause>nul
  358.               goto :edf13
  359.               )
  360. set "dat3=%dat%"
  361. goto :eof
  362. :edf14
  363. call :工作组
  364. call :test %dat% %lmx4%
  365. call :补齐字符数 "%dat%" "%max4%" "%len%"
  366. set "dat4=%dat%"
  367. goto :eof
  368. :edf15
  369. call :权限
  370. call :test %dat% %lmx5%
  371. call :补齐字符数 "%dat%" "%max5%" "%len%"
  372. set "dat5=%dat%"
  373. goto :eof
  374. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  375. :f2
  376. title  修改一级菜单
  377. cls
  378. for /l %%1 in (0,1,3) do echo.
  379. echo.1)本设置将会修改软件的主菜单信息,具体参数有:菜单、默认工作组、默认权限、分配方案、起止IP、说明;
  380. echo.
  381. echo.2)本设置的方案有禁止、学生、手动、直配、菜单四种方式,直配和菜单方案均需设置具体分机IP;
  382. echo.
  383. echo.3)在设置时应注意格式,如起止IP为1~254的数字,并且不可以重复使用!
  384. echo.
  385. echo.4)要正确使用本设置请先确定已设置好工作组以及网络权限和参数!
  386. echo.
  387. pause>nul
  388. set file=%file2%
  389. set ne=1
  390. set qk=4
  391. call :fun 菜单 工作组 权限 配置方案 起IP 终IP 说明
  392. call :max 18 18 11 16 19 17 100 0
  393. call :lmx 15 14 3  4  3  3  100 0
  394. call :min 1  1  1  1  0  1  1   0
  395. call :auo 1  3  4  5  1  1  1   0
  396. :look2
  397. call :查看文件 2 %file% 12
  398. :p2
  399. set p=0
  400. echo.************************************************************************
  401. set /P p= [1]查看 [2]添加 [3]修改 [4]删除 [5]退出 请选择:
  402. if %p%==1 goto :look2
  403. if %p%==2 goto :newf2
  404. if %p%==3 goto :editf2
  405. if %p%==4 call :删除 2 12
  406. if %p%==5 set p=0&goto :eof
  407. goto :p2
  408. :newf2
  409. call :前空 %qk%
  410. set "dat0=%dat%"
  411. for /l %%z in (1,1,7) do (
  412.        if !d!==1 goto :newf21
  413.        call :edf2%%z
  414.        if "%next%"=="1" set p=0&goto :P2
  415.        )
  416. :newf21
  417. set "dat=%dat0%%dat1%%dat2%%dat3%%dat4%%dat5%%dat6%%dat7%"
  418. echo.
  419. echo.E ---单位-----------默认工作组分类-----默认权限---设置方案-------分配起始IP地址------结束IP地址--------说明
  420. echo %dat%
  421. echo.
  422. echo.以上数据是否正确?
  423. set p=0
  424. set /p p=[1]是,写入。[2]否,重写。[其它]退出。
  425. if %p%==1 echo.>>%file%&echo %dat%>>%file%
  426. if %p%==2 goto :newf2
  427. goto :p2
  428. :: --------------------------------------------------------------------------------------------------------------------------
  429. :editf2
  430. cls
  431. set edit=0
  432. echo 请看清您需要修改的行号,并记下:
  433. pause>nul
  434. call :查看文件 2 %file% 12
  435. echo =======================================
  436. set /p edit=请输入您需要修改的行号(0 退出):
  437. if %edit%==0 goto :p2
  438. echo.
  439. for /l %%1 in (1,1,%n%) do if %edit%==%%1 goto :editf21
  440. echo 您所输入的行号不存在!请看清再输入!
  441. pause>nul
  442. goto:editf2
  443. :editf21
  444. set a=1
  445. set b=%edit%
  446. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  447.       if !a!==%edit% (
  448.            call :lookf2 %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  449.            call :dat %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  450.            goto :editf22
  451.            )
  452.       set /a a+=1
  453.       )
  454. :editf22
  455. set p1=0
  456. echo.
  457. echo 选择您要修改的那项数据?
  458. echo [1]%fun1%     [2]%fun2%     [3]%fun3%    [4]%fun4%    [5]%fun5%    [6]%fun6%    [7]%fun7%
  459. echo [8]下一步     [9]取消
  460. set /p p1=请选择:
  461. if %p1%==8 goto :editf23
  462. if %p1%==9 goto goto :p2
  463. for /l %%z in (1,1,7) do if %p1%==%%z (
  464.             call :edf2%%z
  465.             echo.
  466.             echo 修改的情况如下:
  467.             call :lookf2 !dat1! !dat2! !dat3! !dat4! !dat5! !dat6! !dat7! !dat8!
  468.             goto :editf22
  469.             )
  470. echo 您的选择超出范围!
  471. pause>nul
  472. goto :editf22
  473. :editf23
  474. call :前空 %qk%
  475. set "dat0=!dat!"
  476. for /l %%z in (1,1,7) do (
  477.     call :test "!dat%%z!" "!lmx%%z!"
  478.     call :补齐字符数 "!dat%%z!" "!max%%z!" "!len!"
  479.     set "dat%%z=!dat!"
  480.     )
  481. set "dat=!dat0!!dat1!!dat2!!dat3!!dat4!!dat5!!dat6!!dat7!"
  482. call :edit "!edit!" "!dat!"
  483. call :替换 2 12
  484. goto :p2
  485. :: --------------------------------------------------------------------------------------------------------------------------
  486. :edf21
  487. call :输入文字 %fun1% %max1% %lmx1% %min1%
  488. set "dat1=%dat%"
  489. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  490.        set oldat=%%1
  491.        for %%i in (%dat%) do if "%%i"=="!oldat!" (
  492.               echo 菜单名重复,请重写!
  493.               pause>nul
  494.               goto :edf21
  495.               )
  496.        )
  497. goto :eof
  498. :edf22
  499. call :工作组
  500. call :test %dat% %lmx2%
  501. call :补齐字符数 "%dat%" "%max2%" "%len%"
  502. set "dat2=%dat%"
  503. goto :eof
  504. :edf23
  505. call :权限
  506. call :test %dat% %lmx3%
  507. call :补齐字符数 "%dat%" "%max3%" "%len%"
  508. set "dat3=%dat%"
  509. goto :eof
  510. :edf24
  511. call :方案
  512. call :test %dat% %lmx4%
  513. call :补齐字符数 "%dat%" "%max4%" "%len%"
  514. set "dat4=%dat%"
  515. goto :eof
  516. :edf25
  517. set d=0
  518. call :输入文字 %fun5% %max5% %lmx5% %min5%
  519. set "dat5=!dat!"
  520. if "!dat:~0,1!"==" " (
  521.            call :前空 %max6%
  522.            set "dat6=%dat%"
  523.            set "dat7=%dat%"
  524.            set d=1
  525.            goto :eof
  526.            )
  527. set /a ip=%dat%
  528. for /l %%1 in (1,1,254) do if %ip%==%%1 goto goto :eof
  529. echo IP格式非法,请用1~254的数字!
  530. pause>nul
  531. goto :edf25
  532. :edf26
  533. call :输入文字 %fun6% %max6% %lmx6% %min6%
  534. set "dat6=%dat%"
  535. set /a ip=%dat%
  536. for /l %%1 in (1,1,254) do if %ip%==%%1 goto :edf261
  537. echo IP格式非法,请用1~254的数字!
  538. pause>nul
  539. goto :edf26
  540. :edf261
  541. if %dat% leq %dat5% (
  542.         echo 错误!小等于起始IP
  543.         echo 起始IP为:%dat5%
  544.         pause>nul
  545.         goto :edf26
  546.         )
  547. goto :eof
  548. :edf27
  549. call :输入文字 %fun7% %max7% %lmx7% %min7%
  550. set "dat7=%dat%"
  551. goto :eof
  552. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  553. :f3
  554. title  修改二级菜单
  555. cls
  556. for /l %%1 in (0,1,3) do echo.
  557. echo.1)本设置将会修改软件的二级菜单信息,具体参数有:菜单、分类;
  558. echo.
  559. echo.2)本设置的菜单为一级菜单所有项,分类为二级菜单子项;
  560. echo.
  561. echo.3)在设置时应注意格式,并且分类名不可以重复使用!
  562. echo.
  563. echo.4)要正确使用本设置请先确定已设置好一级菜单!
  564. echo.
  565. pause>nul
  566. set file=%file3%
  567. set ne=1
  568. set qk=6
  569. call :fun 一级菜单 二级菜单
  570. call :max 13 18 0 0 0 0 0 0
  571. call :lmx 15 15 0 0 0 0 0 0
  572. call :min 1  1  0 0 0 0 0 0
  573. call :auo 2  1  0 0 0 0 0 0   
  574. :look3
  575. call :查看文件 3 %file% 18
  576. :p3
  577. set p=0
  578. echo.************************************************************************
  579. set /P p= [1]查看 [2]添加 [3]修改 [4]删除 [5]退出 请选择:
  580. if %p%==1 goto :look3
  581. if %p%==2 goto :newf3
  582. if %p%==3 goto :editf3
  583. if %p%==4 call :删除 3 18
  584. if %p%==5 set p=0&goto :eof
  585. goto :p3
  586. :newf3
  587. call :前空 %qk%
  588. set "dat0=%dat%"
  589. set next=0
  590. for /l %%z in (1,1,2) do  (
  591.        call :edf3%%z
  592.        if "%next%"=="1" set p=0&goto :P3
  593.        )
  594. set "dat=%dat0%%dat1%%dat2%"
  595. echo.
  596. echo.E -----单位--------二级分类------
  597. echo %dat%
  598. echo.
  599. echo.以上数据是否正确?
  600. set p=0
  601. set /p p=[1]是,写入。[2]否,重写。[其它]退出。
  602. for /f %%1 in (%file%) do set a=1
  603. if %p%==1 echo.>>%file%&echo %dat%>>%file%
  604. if %p%==2 goto :newf3
  605. goto :p3
  606. :: --------------------------------------------------------------------------------------------------------------------------
  607. :editf3
  608. cls
  609. set edit=0
  610. echo 请看清您需要修改的行号,并记下:
  611. pause>nul
  612. call :查看文件 3 %file% 18
  613. echo =======================================
  614. set /p edit=请输入您需要修改的行号(0 退出):
  615. if %edit%==0 goto :p3
  616. echo.
  617. for /l %%1 in (1,1,%n%) do if %edit%==%%1 goto :editf31
  618. echo 您所输入的行号不存在!请看清再输入!
  619. pause>nul
  620. goto:editf3
  621. :editf31
  622. set a=1
  623. set b=%edit%
  624. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  625.       if !a!==%edit% (
  626.            call :lookf3 %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  627.            call :dat %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  628.            goto :editf32
  629.            )
  630.       set /a a+=1
  631.       )
  632. :editf32
  633. set p1=0
  634. echo.
  635. echo 选择您要修改的那项数据?
  636. echo [1]%fun1%     [2]%fun2%     [3]下一步    [4]取消
  637. set /p p1=请选择:
  638. if %p1%==3 goto :editf33
  639. if %p1%==4 goto goto :p3
  640. for /l %%z in (1,1,2) do if %p1%==%%z (
  641.             call :edf3%%z
  642.             echo.
  643.             echo 修改的情况如下:
  644.             call :lookf3 !dat1! !dat2! !dat3! !dat4! !dat5! !dat6! !dat7! !dat8!
  645.             goto :editf32
  646.             )
  647. echo 您的选择超出范围!
  648. pause>nul
  649. goto :editf32
  650. :editf33
  651. call :前空 %qk%
  652. set "dat0=!dat!"
  653. for /l %%z in (1,1,2) do (
  654.     call :test "!dat%%z!" "!lmx%%z!"
  655.     call :补齐字符数 "!dat%%z!" "!max%%z!" "!len!"
  656.     set "dat%%z=!dat!"
  657.     )
  658. set "dat=!dat0!!dat1!!dat2!"
  659. call :edit "!edit!" "!dat!"
  660. call :替换 3 12
  661. goto :p3
  662. :: --------------------------------------------------------------------------------------------------------------------------
  663. :edf31
  664. call :一级菜单 0
  665. call :test %dat% %lmx1%
  666. call :补齐字符数 "%dat%" "%max1%" "%len%"
  667. set "dat1=%dat%"
  668. goto :eof
  669. :edf32
  670. call :输入文字 %fun2% %max2% %lmx2% %min2%
  671. set "dat2=%dat%"
  672. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  673.               set oldat=%%2
  674.               for %%i in (%dat%) do if "%%i"=="!oldat!" (
  675.               echo 菜单名重复,请重写!
  676.               pause>nul
  677.               goto :edf32
  678.               )
  679.        )
  680. goto :eof
  681. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  682. :f4
  683. title  修改工作组信息
  684. cls
  685. for /l %%1 in (0,1,3) do echo.
  686. echo.1)本设置将会修改工作组信息,具体参数有:工作组分类、工作组名;
  687. echo.
  688. echo.2)本设置的工作组分类为其他菜单的调用参数,工作组名为实际使用的名字;
  689. echo.
  690. echo.3)在设置时应注意格式,工作组分类不可重名,工作组名可以相同!
  691. echo.
  692. echo.4)危险!本设置将会影响其他相关设置,最好在其他设置前进行!如您对本软件不太熟悉请不要随意修改参数!
  693. echo.
  694. pause>nul
  695. set file=%file4%
  696. set ne=1
  697. set qk=7
  698. call :fun 工作组类别 工作组名称
  699. call :max 19 16 0 0 0 0 0 0
  700. call :lmx 14 14 0 0 0 0 0 0
  701. call :min 1  1  0 0 0 0 0 0
  702. call :auo 1  1  0 0 0 0 0 0
  703. :look4
  704. call :查看文件 4 %file% 18
  705. :p4
  706. set p=0
  707. echo.************************************************************************
  708. set /P p= [1]查看 [2]添加 [3]修改 [4]删除 [5]退出 请选择:
  709. if %p%==1 goto :look4
  710. if %p%==2 goto :newf4
  711. if %p%==3 goto :editf4
  712. if %p%==4 call :删除 4 18
  713. if %p%==5 set p=0&goto :eof
  714. goto :p4
  715. :newf4
  716. call :前空 %qk%
  717. set "dat0=%dat%"
  718. for /l %%z in (1,1,2) do (
  719.         call :edf4%%z
  720.         if "%next%"=="1" set p=0&goto :P4
  721.         )
  722. set "dat=%dat0%%dat1%%dat2%"
  723. echo.
  724. echo.E ----工作组分类--------工作组名----
  725. echo %dat%
  726. echo.
  727. echo.以上数据是否正确?
  728. set p=0
  729. set /p p=[1]是,写入。[2]否,重写。[其它]退出。
  730. if %p%==1 echo.>>%file%&echo %dat%>>%file%
  731. if %p%==2 goto :newf4
  732. goto :p4
  733. :: --------------------------------------------------------------------------------------------------------------------------
  734. :editf4
  735. cls
  736. set edit=0
  737. echo 请看清您需要修改的行号,并记下:
  738. pause>nul
  739. call :查看文件 4 %file% 18
  740. echo =======================================
  741. set /p edit=请输入您需要修改的行号(0 退出):
  742. if %edit%==0 goto :p4
  743. echo.
  744. for /l %%1 in (1,1,%n%) do if %edit%==%%1 goto :editf41
  745. echo 您所输入的行号不存在!请看清再输入!
  746. pause>nul
  747. goto:editf4
  748. :editf41
  749. set a=1
  750. set b=%edit%
  751. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  752.       if !a!==%edit% (
  753.            call :lookf4 %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  754.            call :dat %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  755.            goto :editf42
  756.            )
  757.       set /a a+=1
  758.       )
  759. :editf42
  760. set p1=0
  761. echo.
  762. echo 选择您要修改的那项数据?
  763. echo [1]%fun1%     [2]%fun2%     [3]下一步    [4]取消
  764. set /p p1=请选择:
  765. if %p1%==3 goto :editf43
  766. if %p1%==4 goto goto :p4
  767. for /l %%z in (1,1,2) do if %p1%==%%z (
  768.             call :edf4%%z
  769.             echo.
  770.             echo 修改的情况如下:
  771.             call :lookf4 !dat1! !dat2! !dat3! !dat4! !dat5! !dat6! !dat7! !dat8!
  772.             goto :editf42
  773.             )
  774. echo 您的选择超出范围!
  775. pause>nul
  776. goto :editf42
  777. :editf43
  778. call :前空 %qk%
  779. set "dat0=!dat!"
  780. for /l %%z in (1,1,2) do (
  781.     call :test "!dat%%z!" "!lmx%%z!"
  782.     call :补齐字符数 "!dat%%z!" "!max%%z!" "!len!"
  783.     set "dat%%z=!dat!"
  784.     )
  785. set "dat=!dat0!!dat1!!dat2!"
  786. call :edit "!edit!" "!dat!"
  787. call :替换 4 12
  788. goto :p4
  789. :: --------------------------------------------------------------------------------------------------------------------------
  790. :edf41
  791. call :输入文字 %fun1% %max1% %lmx1% %min1%
  792. set "dat1=%dat%"
  793. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  794.               set oldat=%%1
  795.               for %%i in (%dat%) do if "%%i"=="!oldat!" (
  796.               echo 工作组类别重复,请重写!
  797.               pause>nul
  798.               goto :edf41
  799.               )
  800.        )
  801. goto :eof
  802. :edf42
  803. call :输入文字 %fun2% %max2% %lmx2% %min2%
  804. set "dat2=%dat%"
  805. goto :eof
  806. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  807. :f5
  808. title  修改初始网络参数信息
  809. cls
  810. for /l %%1 in (0,1,3) do echo.
  811. echo.1)本设置将会修改初始网络参数信息,具体参数有:函数、项目说明、网域IP、网关IP、DNS、备用DNS、服备器IP、服务器共享盘名及映射盘符;
  812. echo.
  813. echo.2)本设置的服务器IP和服务器共享盘非必填项目,可放空。同时只有共享盘是可以添加删除的,其他数据都是固定项目;
  814. echo.
  815. echo.3)在设置时应注意格式,如网域IP应根据实际情况设置,并省去最后一个节,例网关IP为“192.168.1.1”,网域就只取“192.168.1.”,网关IP取“1”!
  816. echo.
  817. echo.4)危险!本设置中的网络共享盘设置将会影响网络权限的相关设置,最好在相关设置前进行修改!如您对本软件不太熟悉请不要随意修改参数!
  818. echo.
  819. pause>nul
  820. set file=%file5%
  821. set ne=7
  822. set qk=4
  823. call :fun 函数名 项目说明 网域 网关 DNS BDNS 服备器 共享盘
  824. call :max 26 19 12 3 15 15 3 16
  825. call :lmx 2  7  12 3 15 15 3 16
  826. call :min 1  1  1  1 1  0  0 0
  827. call :auo 0  0  1  0 0  0  0 0
  828. :look5
  829. call :查看文件 5 %file% 18
  830. :p5
  831. set p=0
  832. echo.************************************************************************
  833. set /P p= [1]查看 [2]添加 [3]修改 [4]删除 [5]退出(或直接回车) 请选择:
  834. if %p%==1 goto :look5
  835. if %p%==2 goto :newf5
  836. if %p%==3 goto :editf5
  837. if %p%==4 call :删除 5 18
  838. if %p%==5 set p=0&goto :eof
  839. goto :p5
  840. :newf5
  841. call :前空 %qk%
  842. set "dat0=%dat%"
  843. set a=1&set b=1
  844. for /f "eol=E tokens=1-3 delims= " %%1 in (%file5%) do (
  845.          if !a! geq %ne% (
  846.                set wp=%%1
  847.                set "wp!b!=!wp:~1,1!"
  848.                set /a b+=1
  849.                )
  850.          set /a a+=1
  851.          )
  852. set /a b-=1
  853. :newf51
  854. set "wp="
  855. for /l %%1 in (1,1,%b%) do set "wp=!wp!!wp%%1! "
  856. echo.
  857. echo 现有网络映射盘:%wp%,请输入您要创建的新网盘,请不要与现有网盘相同!
  858. set /p newp=请输入一个h~z的小写字母,00退出:
  859. if %newp%==00 goto p5
  860. echo.
  861. for /l %%1 in (1,1,%b%) do if "%newp%"=="!wp%%1!" (
  862.          echo 盘符已存在!不可重复设置!
  863.          pause>nul
  864.          goto :newf51
  865.          )
  866. for %%1 in (a b c d e f g) do if "%newp%"=="%%1" (
  867.          echo 您所选的盘符为系统保留盘符,请重选!
  868.          pause>nul
  869.          goto :newf51
  870.          )
  871. for %%1 in (h i j k l m n o p q r s t u v w x y z) do if "%newp%"=="%%1" goto :newf52
  872. echo 您的选择不符合规范!或您使用了大写字母!
  873. pause>nul
  874. goto :newf51
  875. :newf52
  876. set "dat=p%newp%"
  877. call :test %dat% %lmx1% 0
  878. if %err%==1 goto :newf51
  879. call :补齐字符数 "%dat%" "%max1%" "%len%"
  880. set "dat1=%dat%"
  881. set "dat=共享盘%newp%"
  882. call :test %dat% %lmx2%
  883. call :补齐字符数 "%dat%" "%max2%" "%len%"
  884. set "dat2=%dat%"
  885. call :输入文字 %fun8% %max8% %lmx8% %min8%
  886. set "dat3=%dat%"
  887. set "dat=%dat0%%dat1%%dat2%%dat3%"
  888. echo.
  889. echo.E -函数名(软件中前多加w)------项目---------------数据------------------
  890. echo %dat%
  891. echo.
  892. echo.以上数据是否正确?
  893. set p=0
  894. set /p p=[1]是,写入。[2]否,重写。[其它]退出。
  895. if %p%==1 echo.>>%file%&echo %dat%>>%file%
  896. if %p%==2 goto :newf5
  897. goto :p5
  898. :: --------------------------------------------------------------------------------------------------------------------------
  899. :editf5
  900. set edit=0
  901. echo 请看清您需要修改的行号,并记下:
  902. pause>nul
  903. set "lmxall=12 3 0 15 15 3 16"
  904. set "minall=1 1 0 1 0 0 0"
  905. call :查看文件 5 %file% 18
  906. echo =======================================
  907. set /p edit=请输入您需要修改的行号(00 退出):
  908. if %edit%==00 goto :p5
  909. echo.
  910. if %edit%==3 (
  911.          echo IP掩码默认设置不可修改
  912.          pause>nul
  913.          goto :editf5
  914.          )
  915. for /l %%1 in (1,1,%n%) do if %edit%==%%1 goto :editf51
  916. echo 您所输入的行号不存在!请看清再输入!
  917. pause>nul
  918. goto:editf5
  919. :editf51
  920. if %edit% geq 7 (set lanx=7) ELSE (set lanx=%edit%)
  921. set a=1
  922. for %%1 in (%lmxall%) do (
  923.         if !a!==%lanx% set lmx=%%1
  924.         set /a a+=1
  925.         )
  926. set a=1
  927. for %%1 in (%minall%) do (
  928.         if !a!==%lanx% set min=%%1
  929.         set /a a+=1
  930.         )
  931. set a=1
  932. set b=%edit%
  933. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  934.       if !a!==%edit% (
  935.            call :lookf6 %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  936.            call :dat %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  937.            goto :editf52
  938.            )
  939.       set /a a+=1
  940.       )
  941. :editf52
  942. call :输入文字 %dat2% %lmx% %lmx% %min%
  943. set "dat3=%dat%"
  944. set a=1
  945. set d=0
  946. set "wip="
  947. echo.
  948. goto :lanx%lanx%
  949. :lanx1
  950. for /l %%1 in (0,1,%lmx%) do (
  951.           set "t=!dat:~%%1,1!"
  952.           if "!t!"=="." (
  953.                   set /a d+=1
  954.                   for /l %%i in (0,1,255) do if !wip!==%%i set "wip="&set a=0
  955.                   ) ELSE (
  956.                   set "wip=!wip!!t!"
  957.                   )
  958.           if "!t!"==" " goto lanx11
  959.           if "!t!"=="" goto lanx11        
  960.           if !a!==4 (
  961.                   echo 格式错误2!IP地不可以超过四位数,并且要在0-255之间!
  962.                   pause>nul
  963.                   goto :editf52
  964.                   )
  965.           set /a a+=1
  966.           )
  967. :lanx11
  968. if !d!==3 if "%wip%" lss "." goto :editf53
  969. echo 格式错误1!段位不足或最后一个点后有数字!
  970. echo 网域样例:1.1.1.——255.255.255. (不包含最后一个IP地址)
  971. pause>nul
  972. goto :editf52
  973. :lanx2
  974. call :edf52
  975. if %err%==1 goto :editf52
  976. goto :editf53
  977. :lanx3
  978. echo 掩码默认为255.255.255.0
  979. pause>nul
  980. goto :editf52
  981. :lanx4
  982. call :edf51
  983. if %err%==1 goto :editf52
  984. goto :editf53
  985. :lanx5
  986. if "%dat%"=="" goto :editf53
  987. set a=1
  988. for %%i in (%dat%) do (
  989.    for /f "eol=E tokens=3 delims= " %%1 in (%file%) do (
  990.         if !a!==4 if "%%1"=="%%i" (
  991.            echo 错误!备用DNS 不可以与主DNS重复!
  992.            echo 主DNS为:%%1
  993.            pause>nul
  994.            goto :editf52
  995.            )
  996.       set /a a+=1
  997.       )
  998.    )
  999. pause
  1000. call :edf51
  1001. if %err%==1 goto :editf52
  1002. goto :editf53
  1003. :lanx6
  1004. call :edf52
  1005. if %err%==1 goto :editf52
  1006. goto :editf53
  1007. :lanx7
  1008. if "%dat%"=="" goto :editf53
  1009. for /f "eol=E tokens=1,2,3 delims= " %%1 in (%file%) do (
  1010.       if "%dat%"== %%3 (
  1011.            echo 错误!共享映射盘名不可重复!
  1012.            echo 已有%%2: %%3
  1013.            pause>nul
  1014.            goto :editf52
  1015.            )
  1016.       set /a a+=1
  1017.       )
  1018. :editf53
  1019. call :前空 %qk%
  1020. set "dat0=!dat!"
  1021. for /l %%z in (1,1,2) do (
  1022.     call :test "!dat%%z!" "!lmx%%z!"
  1023.     call :补齐字符数 "!dat%%z!" "!max%%z!" "!len!"
  1024.     set "dat%%z=!dat!"
  1025.     )
  1026. set "dat=!dat0!!dat1!!dat2!!dat3!"
  1027. call :edit "!edit!" "!dat!"
  1028. call :替换 5 18
  1029. goto :p5
  1030. :: --------------------------------------------------------------------------------------------------------------------------
  1031. :edf51
  1032. set err=0
  1033. for /l %%1 in (0,1,%lmx%) do (
  1034.           set "t=!dat:~%%1,1!"
  1035.           if "!t!"=="." (
  1036.                   set /a d+=1
  1037.                   for /l %%i in (0,1,255) do if !wip!==%%i set "wip="&set a=0
  1038.                   ) ELSE (
  1039.                   set "wip=!wip!!t!"
  1040.                   )
  1041.           if "!t!"==" " goto :edf511
  1042.           if "!t!"=="" goto :edf511        
  1043.           if !a!==4 (
  1044.                   echo 格式错误2!IP地不可以超过四位数,并且要在0-255之间!
  1045.                   set err=1
  1046.                   pause>nul
  1047.                   goto :eof
  1048.                   )
  1049.           set /a a+=1
  1050.           )
  1051. :edf511
  1052. if !d!==3 goto :edf522
  1053. set err=1
  1054. echo 格式错误1!段位不足!
  1055. echo 网域样例:1.1.1.1——255.255.255.254
  1056. pause>nul
  1057. goto :eof
  1058. :edf52
  1059. set err=0
  1060. for %%1 in (%dat%) do set wip=%%1
  1061. :edf522
  1062. for /l %%i in (1,1,254) do if %%i==%wip% goto :eof
  1063. echo 格式错误3!最后一段IP地址必须在1-254之间!
  1064. set err=1
  1065. pause>nul
  1066. goto :eof
  1067. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1068. :f6
  1069. title  局域网服务器访问权限信息
  1070. cls
  1071. for /l %%1 in (0,1,3) do echo.
  1072. echo.1)本设置将会修改网络权限信息,具体参数有:等级说明、网络帐号、映射共享盘符、备注;
  1073. echo.
  1074. echo.2)本设置的帐号及盘符均针对网络参数中的服务器IP设置,盘符非必填项目。
  1075. echo.
  1076. echo.3)在设置时应注意格式,如盘符:当有l:m:n:o:p:q:五个盘可共享,权限1需共享L:和M:两个盘,则录入"lm"!
  1077. echo.
  1078. echo.4)危险!本设置中的网络共享盘设置将与网络参数的相关设置一一对应!并且会对主菜单和IP分配设置起到影响作用!如您对本软件不太熟悉请不要随意修改参数!
  1079. echo.
  1080. pause>nul
  1081. set file=%file6%
  1082. set ne=1
  1083. set qk=4
  1084. call :fun 权限等级 服务器帐号 共享盘符 备注
  1085. call :max 18 17 20 100 0 0 0 0
  1086. call :lmx 3  15 18 100 0 0 0 0
  1087. call :min 1  1  0  0   0 0 0 0
  1088. call :auo 1  1  1  1   0 0 0 0
  1089. :look6
  1090. call :查看文件 6 %file% 12
  1091. :p6
  1092. set p=0
  1093. echo.************************************************************************
  1094. set /P p= [1]查看 [2]添加 [3]修改 [4]删除 [5]退出 请选择:
  1095. if %p%==1 goto look6
  1096. if %p%==2 goto :newf6
  1097. if %p%==3 goto :editf6
  1098. if %p%==4 call :删除 6 12
  1099. if %p%==5 set p=0&goto :eof
  1100. goto :p6
  1101. :newf6
  1102. call :前空 %qk%
  1103. set "dat0=%dat%"
  1104. for /l %%z in (1,1,4) do (
  1105.          call :edf6%%z
  1106.          if "%next%"=="1" set p=0&goto :P6
  1107.          )
  1108. set "dat=%dat0%%dat1%%dat2%%dat3%%dat4%"
  1109. echo.
  1110. echo.E -网络权限等级--------网络帐号--------映射盘符数----------备注----
  1111. echo %dat%
  1112. echo.
  1113. echo.以上数据是否正确?
  1114. set p=0
  1115. set /p p=[1]是,写入。[2]否,重写。[其它]退出。
  1116. if %p%==1 echo.>>%file%&echo %dat%>>%file%
  1117. if %p%==2 goto :newf6
  1118. goto :p6
  1119. :: --------------------------------------------------------------------------------------------------------------------------
  1120. :editf6
  1121. cls
  1122. set edit=0
  1123. echo 请看清您需要修改的行号,并记下:
  1124. pause>nul
  1125. call :查看文件 6 %file% 18
  1126. echo =======================================
  1127. set /p edit=请输入您需要修改的行号(0 退出):
  1128. if %edit%==0 goto  :p6
  1129. echo.
  1130. for /l %%1 in (1,1,%n%) do if %edit%==%%1 goto :editf61
  1131. echo 您所输入的行号不存在!请看清再输入!
  1132. pause>nul
  1133. goto:editf6
  1134. :editf61
  1135. set a=1
  1136. set b=%edit%
  1137. for /f "eol=E tokens=1-8 delims= " %%1 in (%file%) do (
  1138.       if !a!==%edit% (
  1139.            call :lookf6 %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  1140.            call :dat %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  1141.            goto :editf62
  1142.            )
  1143.       set /a a+=1
  1144.       )
  1145. :editf62
  1146. set p1=0
  1147. echo.
  1148. echo 选择您要修改的那项数据?
  1149. echo [1]%fun1%     [2]%fun2%     [3]%fun3%    [4]%fun4%    [5]下一步    [6]取消
  1150. set /p p1=请选择:
  1151. if %p1%==1 echo 权限等级不可修改,只可以添加!&pause>nul&goto :editf62
  1152. if %p1%==5 goto :editf63
  1153. if %p1%==6 goto goto :p6
  1154. for /l %%z in (2,1,4) do if %p1%==%%z (
  1155.             call :edf6%%z
  1156.             echo.
  1157.             echo 修改的情况如下:
  1158.             call :lookf6 !dat1! !dat2! !dat3! !dat4! !dat5! !dat6! !dat7! !dat8!
  1159.             goto :editf62
  1160.             )
  1161. echo 您的选择超出范围!
  1162. pause>nul
  1163. goto :editf62
  1164. :editf63
  1165. call :前空 %qk%
  1166. set "dat0=!dat!"
  1167. for /l %%z in (1,1,4) do (
  1168.     call :test "!dat%%z!" "!lmx%%z!"
  1169.     call :补齐字符数 "!dat%%z!" "!max%%z!" "!len!"
  1170.     set "dat%%z=!dat!"
  1171.     )
  1172. set "dat=!dat0!!dat1!!dat2!!dat3!!dat4!"
  1173. call :edit "!edit!" "!dat!"
  1174. call :替换 6 12
  1175. goto :p6
  1176. :: --------------------------------------------------------------------------------------------------------------------------
  1177. :edf61
  1178. for /f "eol=E tokens=1 delims= " %%1 in (%file%) do set /a dat=%%1+1
  1179. call :test %dat% %lmx1%
  1180. call :补齐字符数 "%dat%" "%max1%" "%len%"
  1181. set "dat1=%dat%"
  1182. goto :eof
  1183. :edf62
  1184. call :输入文字 %fun2% %max2% %lmx2% %min2%
  1185. set "dat2=%dat%"
  1186. goto :eof
  1187. :edf63
  1188. set a=1&set b=1
  1189. for /f "eol=E tokens=1-3 delims= " %%1 in (%file5%) do (
  1190.          if !a! geq 7 (
  1191.                echo !b! %%2 %%3
  1192.                set wp=%%1
  1193.                set "wp!b!=!wp:~1,1!"
  1194.                set /a b+=1
  1195.                )
  1196.          set /a a+=1
  1197.          )
  1198. echo.
  1199. echo.请您输入序号选择您所需要映射的网盘,当需要映射多个网盘时请用空格空开每个选择的数字,
  1200. echo.例:1 2 或 2 3 6。
  1201. set /p wp=
  1202. set "dat="
  1203. for %%1 in (%wp%) do (
  1204.            if "!wp%%1!"=="" (
  1205.               echo 您选择无效,无此共享!  
  1206.               pause>nul
  1207.               goto :edf63
  1208.               )
  1209.            set "dat=!dat!!wp%%1!"
  1210.            )
  1211. echo %dat%
  1212. pause>nul
  1213. call :test %dat% %lmx3%
  1214. call :补齐字符数 "%dat%" "%max3%" "%len%"
  1215. set "dat3=%dat%"
  1216. goto :eof
  1217. :edf64
  1218. call :输入文字 %fun4% %max4% %lmx4% %min4%
  1219. set "dat4=%dat%"
  1220. goto :eof
  1221. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  1222. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$       通用子程序区           $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  1223. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  1224. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1225. :file1
  1226. :: 创建 computer.ip
  1227. echo E ------  末级菜单说明 ------------ >computer.ip
  1228. echo E 1.使用E开头的行和空行将被文件忽略读取, >>computer.ip
  1229. echo E 2.计算机名请不要重复,使用空格对准菜单! >>computer.ip
  1230. echo E 3.完整的名字内请不要使用空格,否则软件将会视为两个内容! >>computer.ip
  1231. echo E 4.IP地址请不要重复,并与一级菜单二级菜单相对应 >>computer.ip
  1232. echo E 5.以上规则请不要删除,以便再次修改时提供参考. >>computer.ip
  1233. echo.>>computer.ip
  1234. echo E --分类----------计算机名---------IP地址-------工作组---------权限 >>computer.ip
  1235. echo.>>computer.ip
  1236. goto :eof
  1237. :: --------------------------------------------------------------------------------------------------------------------------
  1238. :file2
  1239. :: 创建 I级菜单.menu
  1240. echo E ------  一级菜单说明 ------------ >I级菜单.menu
  1241. echo E 1.使用E开头的行和空行将被文件忽略读取, >>I级菜单.menu
  1242. echo E 2.序号请不要重复,使用空格对准菜单! >>I级菜单.menu
  1243. echo E 3.完整的名字内请不要使用空格,否则软件将会视为两个内容! >>I级菜单.menu
  1244. echo E 4.设置方法:分为:手动(手动设置IP及机名);菜单(使用二级菜单读取设置);直配(直接读取IP文件进行分配)禁止(不分配区域);学生(学生机自动编号) >>I级菜单.menu
  1245. echo E 5.网络教室,默认第一个IP为教师机并且权限等级为6,第二个IP开始为学生机1号,以此类推;学生机权限为2. >>I级菜单.menu
  1246. echo E 6.禁止\学生\手动 需要给出IP起止数.禁止的可以给出说明,但只许一句话. >>I级菜单.menu
  1247. echo E 7.IP地址不可重叠 >>I级菜单.menu
  1248. echo E 8.以上规则请不要删除,以便再次修改时提供参考. >>I级菜单.menu
  1249. echo.>>I级菜单.menu
  1250. echo E ---单位-----------默认工作组分类-----默认权限---设置方案-------分配起始IP地址------结束IP地址--------说明 >>I级菜单.menu
  1251. echo.>>I级菜单.menu
  1252. goto :eof
  1253. :: --------------------------------------------------------------------------------------------------------------------------
  1254. :file3
  1255. :: 创建 II级菜单.menu
  1256. echo E ------  一级菜单说明 ------------ >II级菜单.menu
  1257. echo E 1.使用E开头的行和空行将被文件忽略读取, >>II级菜单.menu
  1258. echo E 2.序号请不要重复,使用空格对准菜单! >>II级菜单.menu
  1259. echo E 3.完整的名字内请不要使用空格,否则软件将会视为两个内容! >>II级菜单.menu
  1260. echo E 4.以上规则请不要删除,以便再次修改时提供参考. >>II级菜单.menu
  1261. echo.>>II级菜单.menu
  1262. echo E -----单位--------二级分类------ >>II级菜单.menu
  1263. echo.>>II级菜单.menu
  1264. goto :eof
  1265. :: --------------------------------------------------------------------------------------------------------------------------
  1266. :file4
  1267. :: 创建 工作组.menu
  1268. echo E ------  工作组菜单说明 ------------ >工作组.menu
  1269. echo E 1.使用E开头的行和空行将被文件忽略读取, >>工作组.menu
  1270. echo E 2.序号请不要重复,使用空格对准菜单! >>工作组.menu
  1271. echo E 3.完整的名字内请不要使用空格,否则软件将会视为两个内容! >>工作组.menu
  1272. echo E 4.请与您别的文档中的工作组分类一一对应,否则会影响使用! >>工作组.menu
  1273. echo E 5.以上规则请不要删除,以便再次修改时提供参考. >>工作组.menu
  1274. echo.>>工作组.menu
  1275. echo E ----工作组分类--------工作组名---- >>工作组.menu
  1276. echo.>>工作组.menu
  1277. goto :eof
  1278. :: --------------------------------------------------------------------------------------------------------------------------
  1279. :file5
  1280. :: 创建 网络参数.menu
  1281. echo E ------  菜单说明 ------------ >网络参数.menu
  1282. echo E 1.使用E开头的行和空行将被文件忽略读取, >>网络参数.menu
  1283. echo E 2.请不要更改此菜单的目录项,只可更改后边的数据,并按格式要求填写! >>网络参数.menu
  1284. echo E 3.完整的名字内请不要使用空格,否则软件将会视为两个内容! >>网络参数.menu
  1285. echo E 5.共享盘为服务器共享盘名,可以按顺序添加,并在权限那里使用字母选择! >>网络参数.menu
  1286. echo E 6.以上规则请不要删除,以便再次修改时提供参考. >>网络参数.menu
  1287. echo.>>网络参数.menu
  1288. echo E -函数名(软件中前多加w)------项目---------------数据------------------ >>网络参数.menu
  1289. echo.>>网络参数.menu
  1290. goto :eof
  1291. :: --------------------------------------------------------------------------------------------------------------------------
  1292. :file6
  1293. :: 创建 网络权限.menu
  1294. echo E ------  工作组菜单说明 ------------ >网络权限.menu
  1295. echo E 1.使用E开头的行和空行将被文件忽略读取, >>网络权限.menu
  1296. echo E 2.序号请不要重复,使用空格对准菜单! >>网络权限.menu
  1297. echo E 3.完整的名字内请不要使用空格,否则软件将会视为两个内容! >>网络权限.menu
  1298. echo E 4.请与您别的文档中的网络权限等级一一对应,否则会影响使用! >>网络权限.menu
  1299. echo E 5.映射盘符数请用"/"隔开,不要使用空格! >>网络权限.menu
  1300. echo E 6.以上规则请不要删除,以便再次修改时提供参考. >>网络权限.menu
  1301. echo.>>网络权限.menu
  1302. echo E -网络权限等级--------网络帐号--------映射盘符数----------备注---- >>网络权限.menu
  1303. echo.>>网络权限.menu
  1304. goto :eof
  1305. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1306. :默认
  1307. echo     专用IP            学区办公          1          禁止            11                 20                财物等专用IP,请管理员设置! >>I级菜单.menu
  1308. echo     网络教室1         电脑室            1          学生            21                 80                网络教室专用地址,会自动分配! >>I级菜单.menu                  
  1309. echo     行政办公          学区办公          1          手动            81                 100               行政办公使用端口。 >>I级菜单.menu
  1310. echo     中心校            中小教师          1          手动            101                200               中心校教师、教室等使用端口。 >>I级菜单.menu
  1311. echo     幼儿园            幼儿办公          1          手动            200                250               附属幼儿园办公及教室使用端口。 >>I级菜单.menu
  1312. echo     特殊IP            无                1          禁止            2                  10                特殊设备专用端口,请咨询管理员! >>I级菜单.menu
  1313. echo     临时备用IP        中小教师          1          手动            251                254               临时IP,请用完后自行删除! >>I级菜单.menu
  1314. echo.>>I级菜单.menu
  1315. echo        学区办公           MSHOME >>工作组.menu
  1316. echo        电脑室             DNS >>工作组.menu
  1317. echo        中小教师           MSHOME >>工作组.menu
  1318. echo        幼儿办公           MSHOME >>工作组.menu
  1319. echo.>>工作组.menu
  1320. echo     1                 中小备课组                       学校教师机用 >>网络权限.menu
  1321. echo.>>网络权限.menu
  1322. echo.    y                         网域               192.168.1. >>网络参数.menu
  1323. echo.    g                         网关地址           1 >>网络参数.menu
  1324. echo.    ym                        掩码               255.255.255.0 >>网络参数.menu
  1325. echo.>>网络参数.menu
  1326. echo.    dns                       主DNS              218.85.152.99 >>网络参数.menu
  1327. echo.    bdns                      备用DNS            218.85.157.99 >>网络参数.menu
  1328. echo.>>网络参数.menu
  1329. echo.    hwq                       服务器IP地址        >>网络参数.menu
  1330. echo.>>网络参数.menu
  1331. echo.    pl                        共享盘l             >>网络参数.menu
  1332. echo.    pm                        共享盘m             >>网络参数.menu
  1333. echo.    pn                        共享盘n             >>网络参数.menu
  1334. echo.    po                        共享盘o             >>网络参数.menu
  1335. echo.    pp                        共享盘p             >>网络参数.menu
  1336. echo.    pq                        共享盘q             >>网络参数.menu
  1337. echo.>>网络参数.menu
  1338. goto :eof
  1339. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1340. :查看文件
  1341. cls
  1342. set a=0&set b=1
  1343. for /f "eol=E tokens=1-8 delims= " %%1 in (%2) do (
  1344.      if !a!==%3 (
  1345.              set a=0
  1346.              pause>nul
  1347.              cls
  1348.              )
  1349.      call :lookf%1 %%1 %%2 %%3 %%4 %%5 %%6 %%7 %%8
  1350.      echo.
  1351.      set /a a+=1
  1352.      set /a b+=1
  1353.      )
  1354. set /a n=b-1
  1355. goto :eof
  1356. :lookf1
  1357.      echo !b! 分类:%1  计算机名:%2   IP:%3  工作组:%4   权限等级:%5
  1358. goto :eof
  1359. :lookf2
  1360.      echo !b! 菜单:%1   工作组:%2   权限:%3   配置方案:%4   起止IP:%5~%6
  1361.      echo 备注:%7
  1362. goto :eof
  1363. :lookf3
  1364.      echo !b! 一级菜单:%1  二级菜单:%2
  1365. goto :eof
  1366. :lookf4
  1367.      echo !b! 工作组类别:%1  工作组名称:%2
  1368. goto :eof
  1369. :lookf5
  1370.      echo !b! 函数名:%1  项目说明:%2   参数:%3
  1371. goto :eof
  1372. :lookf6
  1373.      echo !b! 权限等级:%1  服务器帐号:%2   共享盘符:%3
  1374.      echo 备注:%4
  1375. goto :eof
  1376. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1377. :输入文字
  1378. cls
  1379. set "dat="
  1380. echo 请输入%3字节以内的数据,请不要使用空格!
  1381. echo 中文将计算为两个字节数!
  1382. if %4==1 echo 本数据不得输入空字符!
  1383. if %4==0 echo 本数据可以为空!
  1384. echo.
  1385. set /p dat=输入"%1"数值:
  1386. if %4==1 (
  1387.        if "%dat%"=="" (
  1388.            echo 不许为空!
  1389.            pause
  1390.            goto :输入文字
  1391.            )
  1392.        )
  1393. call :test "%dat%" "%3" "%4"
  1394. if %err%==1 pause&goto :输入文字
  1395. call :补齐字符数 "%dat%" "%2" "%len%"
  1396. goto :eof
  1397. :补齐字符数
  1398. set kkg=0
  1399. set "dat=%~1"
  1400. if "%~2"=="%~3" goto :eof
  1401. set /a kkg=%~2-%~3
  1402. for /l %%x in (1,1,%kkg%) do set "dat=!dat!%kk%"
  1403. goto :eof
  1404. :test
  1405. set "var=%~1"
  1406. set len=0
  1407. set err=0
  1408. if "%~1"=="" goto :eof
  1409. for /l %%x in (0 1 200) do (
  1410.    set "var_=!var:~%%x,1!"
  1411.    if "!var_!"=="" goto :eof
  1412.    if "%~3"=="0" if "!var_!"==" " (
  1413.        echo 错误:字符中带有空格!
  1414.        set err=1      
  1415.        goto :eof
  1416.        )
  1417.    if !var_! gtr Z (set /a len+=2) else set /a len+=1
  1418.    )
  1419. if !len! gtr %~2 (
  1420.            echo 错误:已超出规定长度!
  1421.            set err=1
  1422.            )
  1423. goto :eof
  1424. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1425. :前空
  1426. set "dat="
  1427. if %1==0 goto :eof
  1428. for /l %%1 in (1,1,%1) do set "dat=!dat!%kk%"
  1429. goto :eof
  1430. :一级菜单
  1431. echo.
  1432. echo 选择分类(一级菜单)
  1433. set p2=0
  1434. set r=1
  1435. set next=0
  1436. for /f "eol=E tokens=1,4 delims= " %%1 in (%file2%) do (
  1437.       if "%%2"=="直配" (
  1438.              echo !r! %%1    %%2
  1439.              set mune!r!=%%1
  1440.              set cd!r!=0
  1441.              set /a r+=1
  1442.              )
  1443.       if "%%2"=="菜单" (
  1444.              echo !r! %%1    %%2
  1445.              set mune!r!=%%1
  1446.              set cd!r!=1
  1447.              set /a r+=1
  1448.              )
  1449.       )
  1450. echo.
  1451. set /a r-=1
  1452. if %r%==0 echo 无可用菜单选项,只有分配方式被设为“菜单”或“直配”的菜单才可进行设置!& set next=1&goto :eof
  1453. set /p p2=请选择(00退出):
  1454. if %p2%==00 set next=1&goto eof
  1455. for /l %%1 in (1,1,%r%) do if %p2%==%%1 (
  1456.        set dat=!mune%p2%!
  1457.        if "!cd%p2%!"=="1" (
  1458.                 if %1==1 call :二级菜单 !dat!
  1459.                 )
  1460.        goto :eof
  1461.        )
  1462. goto :一级菜单
  1463. :二级菜单
  1464. echo.
  1465. echo 选择分类(二级菜单)
  1466. set p3=0
  1467. set r=1
  1468. for /f "eol=E tokens=1,2 delims= " %%i in (%file3%) do (
  1469.       if "%%i"=="%1" (
  1470.              echo !r! %%j
  1471.              set mune!r!=%%j
  1472.              set /a r+=1
  1473.              )
  1474.       )
  1475. echo.
  1476. set /a r-=1
  1477. if %r%==0 echo 无可用菜单选项!
  1478. set /p p3=请选择(00退出):
  1479. if %p3%==00 set next=1&goto eof
  1480. for /l %%i in (1,1,%r%) do if %p3%==%%i (
  1481.       set dat=!mune%p3%!
  1482.       goto :eof
  1483.       )
  1484. goto :二级菜单
  1485. :工作组
  1486. echo.
  1487. echo 选择工作组
  1488. set p1=0
  1489. set r=1
  1490. for /f "eol=E tokens=1 delims= " %%1 in (%file4%) do (
  1491.       echo !r! %%1
  1492.       set mune!r!=%%1
  1493.       set cd!r!=0
  1494.       set /a r+=1
  1495.       )
  1496. echo.
  1497. set /a r-=1
  1498. set /p p1=请选择(00退出):
  1499. if %p1%==00 set next=1&goto eof
  1500. for /l %%1 in (1,1,%r%) do if %p1%==%%1 (
  1501.        set dat=!mune%p1%!
  1502.        goto :eof
  1503.        )
  1504. goto :工作组
  1505. :权限
  1506. echo.
  1507. echo 选择网络权限
  1508. set p1=0
  1509. set r=1
  1510. for /f "eol=E tokens=1,2 delims= " %%1 in (%file6%) do (
  1511.       echo !r! 等级:%%1 帐号:%%2
  1512.       set mune!r!=%%1
  1513.       set cd!r!=0
  1514.       set /a r+=1
  1515.       )
  1516. echo.
  1517. set /a r-=1
  1518. set /p p1=请选择(00退出):
  1519. if %p1%==00 set next=1&goto eof
  1520. for /l %%1 in (1,1,%r%) do if %p1%==%%1 (
  1521.        set dat=!mune%p1%!
  1522.        goto :eof
  1523.        )
  1524. goto :权限
  1525. :方案
  1526. echo.
  1527. echo 选择分配方案
  1528. echo. 1 禁止:禁止非管理员分配IP
  1529. echo. 2 菜单:通过二级菜单分配IP
  1530. echo. 3 直配:一级菜单直接分配IP
  1531. echo. 4 手动:手动分配IP
  1532. echo. 5 学生:网络教室自动分配IP,第一个地址默认教师机,其余学生机!
  1533. echo.
  1534. set /p p1=请选择(00退出):
  1535. if %p1%==00 set next=1&goto eof
  1536. if %p1%==1 set dat=禁止&set min5=1&goto :eof
  1537. if %p1%==2 set dat=菜单&goto :eof
  1538. if %p1%==3 set dat=直配&goto :eof
  1539. if %p1%==4 set dat=手动&set min5=1&goto :eof
  1540. if %p1%==5 set dat=学生&set min5=1&goto :eof
  1541. goto :方案
  1542. :: %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  1543. :删除
  1544. set t=0
  1545. set p1=0
  1546. set /P p1= 请输入(%ne%~%n%)需要删除的行号,输入“0”重新查看。请选择:
  1547. if %p1%==0 goto :look1
  1548. set a=0&set b=1
  1549. for /l %%1 in (%ne%,1,%n%) do (
  1550.       if %p1%==%%1 (
  1551.            call :edit "%p1%" ""
  1552.            set t=1
  1553.            goto :替换
  1554.            )
  1555.       )
  1556. echo.
  1557. echo. 您的选择无效!请重新选择。
  1558. goto :删除
  1559. :替换
  1560. call :查看文件 %1 %timef% %2
  1561. set p1=0
  1562. echo.===============================================
  1563. echo.是否确认修改?
  1564. set /p p1=[1]确认 [2或其他]取消  请选择:
  1565. if !p1!==1 goto :确认修改
  1566. pause>nul
  1567. goto :eof
  1568. :确认修改
  1569. cls
  1570. echo.
  1571. echo. 确认修改将会对文档进行不可修复的操作!请慎重,如果你现在后悔还来得及!
  1572. pause>nul
  1573. call :file%1
  1574. for /f "delims=" %%z in (%timef%) do echo.%%z>>%file%
  1575. echo 已进行修改!如果您之前有做过备份还可以进行还原!
  1576. goto :eof
  1577. :edit
  1578. echo.>%timef%
  1579. set e=1
  1580. set "new=%~2"
  1581. for /f "eol=E delims=" %%x in (%file%) do (
  1582.            set "newdat=%%x"
  1583.            if !e!==%~1 set "newdat=%new%"
  1584.            echo.!newdat!>>%timef%
  1585.            set /a e+=1
  1586.            if "%%x"=="" set /a e-=1
  1587.            if "%%x"==" " set /a e-=1
  1588.            )
  1589. goto :eof
  1590. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  1591. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$       数据写入区            $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  1592. :: $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
  1593. :fun
  1594. set fun1=%1
  1595. set fun2=%2
  1596. set fun3=%3
  1597. set fun4=%4
  1598. set fun5=%5
  1599. set fun6=%6
  1600. set fun7=%7
  1601. set fun8=%8
  1602. goto :eof
  1603. :max
  1604. set max1=%1
  1605. set max2=%2
  1606. set max3=%3
  1607. set max4=%4
  1608. set max5=%5
  1609. set max6=%6
  1610. set max7=%7
  1611. set max8=%8
  1612. goto :eof
  1613. :lmx
  1614. set lmx1=%1
  1615. set lmx2=%2
  1616. set lmx3=%3
  1617. set lmx4=%4
  1618. set lmx5=%5
  1619. set lmx6=%6
  1620. set lmx7=%7
  1621. set lmx8=%8
  1622. goto :eof
  1623. :min
  1624. set min1=%1
  1625. set min2=%2
  1626. set min3=%3
  1627. set min4=%4
  1628. set min5=%5
  1629. set min6=%6
  1630. set min7=%7
  1631. set min8=%8
  1632. goto :eof
  1633. :auo
  1634. set auo1=%1
  1635. set auo2=%2
  1636. set auo3=%3
  1637. set auo4=%4
  1638. set auo5=%5
  1639. set auo6=%6
  1640. set auo7=%7
  1641. set auo8=%8
  1642. goto :eof
  1643. :dat
  1644. set dat1=%1
  1645. set dat2=%2
  1646. set dat3=%3
  1647. set dat4=%4
  1648. set dat5=%5
  1649. set dat6=%6
  1650. set dat7=%7
  1651. set dat8=%8
  1652. goto :eof
复制代码

作者: applba    时间: 2011-5-30 11:20

是我见过第二长的p代码,曾经见过5000行的p代码。
作者: batman    时间: 2011-5-30 11:25

同感太长了。。。
作者: CrLf    时间: 2011-5-30 13:33

楼主的干劲值得鼓励,但是可以精简的地方太多了...
建议达到更高水平之后回头优化一下。
作者: mxxcgzxxx    时间: 2011-5-30 14:04

是啊我也是感觉太长了,去一些装饰语言还是有一千多行.所有类别分成了6个设置文档
一级菜单\二级菜单\工作组\具体IP\总参数\服务器权限
所以修改时每个文档的方法不同,困挠哈.
作者: Hello123World    时间: 2011-5-30 15:38

让我想起了——1898戊戌变法……




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2