Board logo

标题: [系统相关] [代码征集]批处理常用软件管理器 [打印本页]

作者: novaa    时间: 2007-12-9 22:26     标题: [代码征集]批处理常用软件管理器

要求:
具有的功能有
1.添加软件分类
2.为指定类别添加应用程序
3.启动应用程序
4.删除指定应用程序
也就是一个软件的管理工具。(处于对黑客工具多且有分类的目的想出来的)
比如,可以添加类别(扫描工具)。在指定类别里加入应用程序(流光)。启动指定该应用程序。
我的代码如下
老手指教!
  1. @echo off&color 24&setlocal enabledelayedexpansion
  2. mode con cols=30 lines=25
  3. Title 批处理版VStart
  4. ::code by Novaa@bbs.bathome.net 2007/12/9 22:15
  5. :Menu
  6. cls
  7. echo\&echo\&echo\&echo VStarT&echo\&echo\
  8. set List=1.添加新的分类,2.添加新的软件,3.启动软件,4.删除软件,5.退出
  9. for %%i in (%List%) do set /p= %%i<NUL&ECHO.&ECHO.
  10. echo.
  11. set /p Choi= 请选择:
  12. if "%Choi%"=="5" exit
  13. for %%i in (1,2,3,4) do if "%%i"=="%Choi%" set Right=1
  14. if defined Right (goto :Choice%Choi%) else (
  15. echo 错误的输入,请重新输入.
  16. goto :Menu
  17. )
  18. :Choice1
  19. if exist Choice1.ini (goto :add) else (fsutil file createnew Choice1.ini 0)
  20. :add
  21. cls
  22. echo.&echo.&echo 请输入新的类名:
  23. set /p newType=
  24. if exist %newType%.ini (echo 此类名以存在!&ping /n 2 127.1>nul&goto :Menu) else (cd.>%newType%.ini)
  25. cls&echo 新类已成功添加!&echo.&echo.&echo.&echo.&echo.&echo.
  26. echo %newType%>>Choice1.ini
  27. set num=1
  28. if exist Choice.ini del Choice.ini
  29. for /f %%i in (Choice1.ini) do (
  30. echo !num!:%%i>>Choice.ini
  31. set /a num+=1
  32. )
  33. echo 继续请输入:1
  34. echo 返回主菜单输入:2
  35. set /p choice=
  36. if "%choice%"=="1" goto :add
  37. if "%choice%"=="2" goto :Menu
  38. :Choice2
  39. cls&echo.&echo.&echo 请选择需要添加的类别:
  40. set num=1
  41. if exist Choice.ini del Choice.ini
  42. for /f %%i in (Choice1.ini) do (
  43. echo !num!:%%i>>Choice.ini
  44. set /a num+=1
  45. )
  46. cls&echo.&echo.&echo.
  47. for /f "delims=" %%i in (Choice.ini) do (set /p= %%i<NUL&ECHO.)
  48. set /p choi2=
  49. for /f "tokens=1,2 delims=:" %%i in (Choice.ini) do (
  50. if "%choi2%"=="%%i" set AddTy=%%j
  51. )
  52. cls&echo.&echo.&echo.
  53. :AddTo
  54. set /p AddTo= 请选择需要添加的软件名称:
  55. set /p AddToP= 请输入需要添加软件的绝对路径(可拖进此窗口):
  56. echo %AddTo%:%AddToP%>>!AddTy!.ini
  57. echo.&echo.&echo 软件添加成功!&ping /n 2 127.1>nul
  58. cls&&echo.&echo.&echo.&echo.&echo.&echo.
  59. echo 继续添加请输入1&echo.&echo.
  60. echo 返回主菜单请输入2
  61. set /p choice=
  62. if "%choice%"=="1" goto :AddTo
  63. if "%choice%"=="2" goto :Menu
  64. :Choice3
  65. cls&echo.&echo 请选择需要启动软件的类别:
  66. set num=1
  67. if exist Choice.ini del Choice.ini
  68. for /f %%i in (Choice1.ini) do (
  69. echo !num!:%%i>>Choice.ini
  70. set /a num+=1
  71. )
  72. cls&echo.&echo.&echo\
  73. for /f "delims=" %%i in (Choice.ini) do (set /p= %%i<NUL&ECHO.)
  74. set /p choi3=
  75. for /f "tokens=1,2 delims=:" %%i in (Choice.ini) do (
  76. if "%choi3%"=="%%i" set AddTy=%%j
  77. )
  78. echo.&echo.&echo 请输入需要启动的项目:&ping /n 1 127.1>nul
  79. echo.&echo.&echo.
  80. findstr /n .* !AddTy!.ini
  81. set /p Sta=
  82. for /f "tokens=1,2* delims=:" %%i in ('findstr /n .* !AddTy!.ini') do (
  83. if "!Sta!"=="%%i" set StaT=%%k
  84. )
  85. !StaT!
  86. cls&goto :Menu
  87. :Choice4
  88. cls&echo.&echo.
  89. echo 删除分类请输入:1
  90. echo 删除软件请输入:2
  91. set /p Delete=
  92. if "%Delete%"=="1" goto :DeleTy
  93. if "%Delete%"=="2" goto :DeleTo
  94. :DeleTy
  95. cls&echo\&echo\&echo 请输入你想删除的类名:
  96. set /p DeleTy=
  97. if exist %DeleTy%.ini (del %DeleTy%.ini) else (echo 此类不存在!&ping /n 2 127.1>nul&goto :Menu)
  98. findstr /v %DeleTy% Choice.ini>Choice.txt
  99. findstr /v %DeleTy% Choice1.ini>Choice1.txt
  100. pause
  101. for /f "tokens=1* delims=:" %%i in (Choice.txt) do echo %%j>TiH.ini&ping /n 2 127.1>nul
  102. findstr /n .* TiH.ini>Choice.ini&del TiH.ini&del Choice.txt
  103. for /f %%i in (Choice1.txt) do echo %%i>TiH1.ini&ping /n 2 127.1>nul
  104. findstr .* TiH1.ini>Choice1.ini&del TiH1.ini&del Choice1.txt
  105. goto :Menu
  106. :DeleTo
  107. cls&echo\&echo\&echo 请输入你想删除的软件所属类
  108. set /p DeleTy=
  109. if exist %DeleTy%.ini goto :Nex else (echo 此类不存在!&ping /n 2 127.1>nul&goto :Menu)
  110. :Nex
  111. echo 请输入你要删除的软件名称编号:
  112. findstr /n .* !DeleTy!.ini
  113. set /p DeleTo=
  114. for /f "tokens=1,2* delims=:" %%i in ('findstr /n .* !DeleTy!.ini') do (
  115. if "%%i"=="%DeleTo%" (findstr /v %%j !DeleTy!.ini>!DeleTy!.txt)&ping /n 3 127.1>nul& echo 正在删除。。。请等待&findstr .* !DeleTy!.txt>!DeleTy!.ini&del !DeleTy!.txt)
  116. )
  117. cls
  118. goto :Menu
复制代码

作者: foxJL    时间: 2007-12-9 23:02

一些菜鸟学黑客的时候经常用到很多工具,管理起来也真不方便.
看来你在华夏也混了不少经验啊~!
作者: 随风    时间: 2007-12-9 23:50

思路不错,题材也不错。
   进步很快,加分鼓励。
  但代码太臃肿,创建的配置文件及临时文件太多,个人认为不需要临时文件,一个配置文件应该足够。
哦,改写配置文件的时候要一个临时文件。

[ 本帖最后由 随风 于 2007-12-9 23:57 编辑 ]
作者: 随风    时间: 2007-12-10 07:39

.
以在 7 楼更新,新增了些功能。

[ 本帖最后由 随风 于 2007-12-11 16:44 编辑 ]
作者: novaa    时间: 2007-12-10 16:20

哈哈。俺的文章也被评分了。高兴啊
Re: 泛滥棏慌°
东西都是其他网站学的。不是华夏。
注册了华夏后主要就是在批处理区发批处理,为论坛打广告


Re 随风
代码有有两个待改进的地方
一是 启动软件后会自动退出
二是 不支持为应用软件添加描述

[ 本帖最后由 novaa 于 2007-12-10 16:57 编辑 ]
作者: youxi01    时间: 2007-12-10 19:16

我晕,就你那点"出息",评个分把你高兴成这样?!开玩笑/
呵呵,同志,进步的确是很大啊,继续加油,期待你的更好的作品
作者: 随风    时间: 2007-12-11 16:09

代码以更新
   功能比以前更完善、更人性化、代码也更长。。呵呵。
   暂未发现bug欢迎测试、提建议。
说明:
   增加了输入软件描述部分,也可不输入,运行过程随时可返回主菜单.
   代码运行后会在当前目录产生一个ini配置文件,用以记录软件信息,
   选择删除分类或删除软件时会产生一个临时文件,完成后会自动删除.
   此代码不会对电脑的任何软件作改动,所谓删除只是删除配置文件中的记录。
用户自定义部分。
   代码开头部分,两条虚线内的内容,可以由用户自己定义。
   对用户输入信息作了简单的出错判断,出错信息默认显示时间是ping 2 次127.1
   若想延长可在代码开头部分虚线内修改 set "pin=ping/n 2 127.1>nul"
   配置文件文件名默认是peizi.ini也可在代码开头部分自定义set "wj=peizi.ini"
   选择启动软件时,默认是启动后退出代码若想返回主菜单也可以自定义
   将set "qqq=exit"改为set "qqq=%hui%"即可。
注意事项:
   分类不能用_下画线开头,软件描述不能以+加号结尾.
   ==============================================
  1. @echo off&color 1f&title  软件管理工具
  2. ::  code by 随风  @bbs.bathome.net  2007-12-11
  3. set "hui=endlocal&set _abc=&goto start"
  4. ::  以下三行变量可以有用户自定义
  5. ::----------------------------------------------------------
  6. set "wj=peizi.ini"
  7. set "qqq=exit"
  8. set "pin=ping/n 2 127.1>nul"
  9. ::----------------------------------------------------------
  10. if not exist %wj% cd.>%wj%
  11. set "qp=cls&echo\&echo\"&set "fan=   按 F 返回主菜单"
  12. set "List=1、添加新的分类,2、添加新的软件,3、删除分类"
  13. set "List=%List%,4、删除软件,5、启动软件,6、退出"
  14. :start
  15. setlocal enabledelayedexpansion
  16. for /f "delims=" %%i in (%wj%) do (
  17.    set _+_str_=%%i&set /a su+=1
  18.    if "!_+_str_:~0,1!"=="_" (
  19.      set /a lis+=1&set !lis!=!_+_str_:~1!
  20.      set leixin=!_+_str_:~1!&set !leixin!=!_+_str_:~1!&set su=0
  21.    ) else set !leixin!!su!=%%i
  22. )
  23. cls&echo\
  24. if defined _abc goto !_abc!
  25. for %%a in (%list%) do set /p= %%a<nul&echo.&echo\
  26. set /p ss= 请选择
  27. set "ss=!ss: =!"
  28. if "%ss%"=="6" exit
  29. set /a a=1/(ss/1)2>nul||(%qp%  错误的输入,请重新输入.&%pin%&%hui%)
  30. goto biao%ss%
  31. :biao1  添加分类
  32. %qp%  请输入要添加的类名%fan%
  33. echo\&set /p tjlei=  
  34. if /i "!tjlei!"=="f" %hui%
  35. if defined !tjlei! %qp% 此类名以存在&%pin%&goto biao1
  36. echo _!tjlei!>>%wj%
  37. %qp%  !tjlei! 类添加成功%fan%
  38. set xz=&echo\&set /p xz= 任意键继续或回车继续  
  39. if /i "!xz!"=="f" %hui%
  40. endlocal&set _abc=biao1&goto start
  41. :biao2  添加软件
  42. call :xs1
  43. echo\&echo  请选择要添加软件的分类(输入编号)%fan%
  44. echo\&set /p tjfl=  
  45. if /i "!tjfl!"=="f" %hui%
  46. set tt=&call set tt=_!!%tjfl%!!
  47. %qp%  请输入要添加的软件的描述,%fan%
  48. echo\&echo   回车直接进入下一步,添加软件.
  49. set rjmiaos=&echo\&set /p rjmiaos=
  50. if /i "!rjmiaos!"=="f" %hui%
  51. set rjmiaos=!rjmiaos!-+
  52. %qp%  请输入要添加的软件全路径及文件名或拖放软件来此。
  53. echo\&echo %fan%
  54. set tjrj=&echo\&set /p tjrj=
  55. set tjrj=!tjrj:"=!  
  56. if /i "!tjrj!"=="f" %hui%
  57. if not exist "!tjrj!" (
  58.    %qp% 没有该软件,或路径不对&%pin%
  59.    endlocal&set _abc=biao2&goto start
  60. )
  61. set tjrj2=!rjmiaos! !tjrj!
  62. for /f "delims=" %%a in (%wj%) do (
  63.    echo %%a>>linfews.txt
  64.    if "%%a"=="!tt!" echo !tjrj2!>>linfews.txt
  65. )
  66. del/q "%wj%"
  67. ren "linfews.txt" "%wj%"
  68. %qp%  !tjrj! 添加成功 %fan%
  69. set xz=&echo\&set /p xz= 任意键或回车继续  
  70. if /i "!xz!"=="f" %hui%
  71. endlocal&set _abc=biao2&goto start
  72. :biao3  删除分类
  73. if exist "linfews.txt" del/p "linfews.txt"
  74. call :xs1
  75. echo\&echo  请输入要删除的类名(输入编号)%fan%
  76. echo\&echo  注: 此选项将删除所选中的类下面的所有软件名.
  77. set scfl=&echo\&set /p scfl=  
  78. if /i "!scfl!"=="f" %hui%
  79. set lili=&set tt=&call set tt=_!!%scfl%!!
  80. for /f "delims=" %%a in (%wj%) do (
  81.    set sstt=%%a
  82.    if "%%a"=="!tt!" set lili=a
  83.    if defined lili (
  84.       set /a ci+=1
  85.       if !ci! neq 1 (
  86.    if "!sstt:~0,1!"=="_" (set tt=&set lili=) else (set tt=%%a)
  87.    )
  88.    )
  89.    if not "%%a"=="!tt!" (echo %%a>>linfews.txt)
  90. )
  91. del/q "%wj%"
  92. ren "linfews.txt" "%wj%"
  93. %qp%  !tjrj! 删除分类成功 %fan%
  94. set xz=&echo\&set /p xz=   任意键继续或回车继续  
  95. if /i "!xz!"=="f" %hui%
  96. endlocal&set _abc=biao3&goto start
  97. :biao4  删除软件
  98. if exist "linfews.txt" del/p "linfews.txt"
  99. call :xs1
  100. echo\&echo\ 请输入要删除的软件的类名(输入编号)%fan%
  101. set scfl=&echo\&set /p scfl=  
  102. if /i "!scfl!"=="f" %hui%
  103. set lili=&set tt=&call set tt=!!%scfl%!!
  104. cls&call set tt=%%!tt!%%&set kk=&echo\
  105. ::  显示软件描述及软件名
  106. for /l %%a in (1 1 100) do (
  107.    call set var=%%!tt!%%a%%
  108.    for /f "tokens=1* delims=+" %%i in ("!var!") do (
  109.       set numa=%%i&set numb=%%j&set numa=!numa:~0,-1!
  110. )
  111.    if not "!var!"=="" (
  112.       echo  ^(%%a^)  软件描述:  !numa!&set kk=a
  113.    echo       软件名:    !numb!&echo\
  114.    set %%a=!numb!
  115. )
  116.    if not defined kk (
  117.      set kk=a&set bh=f&cls&echo\
  118.   echo  该分类下没有软件.&%pin%
  119. ))
  120. if /i "!bh!"=="f" %hui%
  121. echo\&echo\&echo  请选择要删除软件的编号%fan%
  122. set bh=&echo\&set /p bh=  
  123. if /i "!bh!"=="f" %hui%
  124. call set jieguo=%%!tt!!bh!%%
  125. call set qido=!!%bh%!!
  126. :k 去掉文件名的首尾空格
  127. if "!qido:~0,1!"==" " set qido=!qido:~1!&goto k
  128. if "!qido:~-1!"==" " set qido=!qido:~0,-1!&goto k
  129. ::  删除/启动软件
  130. for /f "delims=" %%a in (%wj%) do (
  131.    if "!ss!"=="4" (
  132.      if not "%%a"=="!jieguo!" echo %%a>>linfews.txt
  133.    ) else if "%%a"=="!jieguo!" start "" "!qido!"&%qqq%
  134. )
  135. if "!ss!"=="4" (
  136.    del/q "%wj%"
  137.    ren "linfews.txt" "%wj%"
  138.    %qp%  !tjrj! 删除软件成功 %fan%
  139.    set xz=&echo\&set /p xz=   任意键继续或回车继续  
  140.    if /i "!xz!"=="f" %hui%
  141.    endlocal&set _abc=biao4&goto start
  142. )
  143. :biao5
  144. goto biao4
  145. :xs1  显示分类
  146. cls&echo\
  147. for /l %%a in (1 1 !lis!) do echo  ^(%%a^)  !%%a!
  148. goto :eof
复制代码

[ 本帖最后由 随风 于 2007-12-13 01:16 编辑 ]




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