标题: [系统相关] [代码征集]批处理常用软件管理器 [打印本页]
作者: novaa 时间: 2007-12-9 22:26 标题: [代码征集]批处理常用软件管理器
要求:
具有的功能有
1.添加软件分类
2.为指定类别添加应用程序
3.启动应用程序
4.删除指定应用程序
也就是一个软件的管理工具。(处于对黑客工具多且有分类的目的想出来的)
比如,可以添加类别(扫描工具)。在指定类别里加入应用程序(流光)。启动指定该应用程序。
我的代码如下
老手指教!
- @echo off&color 24&setlocal enabledelayedexpansion
- mode con cols=30 lines=25
- Title 批处理版VStart
- ::code by Novaa@bbs.bathome.net 2007/12/9 22:15
- :Menu
- cls
- echo\&echo\&echo\&echo VStarT&echo\&echo\
- set List=1.添加新的分类,2.添加新的软件,3.启动软件,4.删除软件,5.退出
- for %%i in (%List%) do set /p= %%i<NUL&ECHO.&ECHO.
- echo.
- set /p Choi= 请选择:
- if "%Choi%"=="5" exit
- for %%i in (1,2,3,4) do if "%%i"=="%Choi%" set Right=1
- if defined Right (goto :Choice%Choi%) else (
- echo 错误的输入,请重新输入.
- goto :Menu
- )
-
-
- :Choice1
- if exist Choice1.ini (goto :add) else (fsutil file createnew Choice1.ini 0)
- :add
- cls
- echo.&echo.&echo 请输入新的类名:
- set /p newType=
- if exist %newType%.ini (echo 此类名以存在!&ping /n 2 127.1>nul&goto :Menu) else (cd.>%newType%.ini)
- cls&echo 新类已成功添加!&echo.&echo.&echo.&echo.&echo.&echo.
- echo %newType%>>Choice1.ini
- set num=1
- if exist Choice.ini del Choice.ini
- for /f %%i in (Choice1.ini) do (
- echo !num!:%%i>>Choice.ini
- set /a num+=1
- )
- echo 继续请输入:1
- echo 返回主菜单输入:2
- set /p choice=
- if "%choice%"=="1" goto :add
- if "%choice%"=="2" goto :Menu
-
-
- :Choice2
- cls&echo.&echo.&echo 请选择需要添加的类别:
- set num=1
- if exist Choice.ini del Choice.ini
- for /f %%i in (Choice1.ini) do (
- echo !num!:%%i>>Choice.ini
- set /a num+=1
- )
- cls&echo.&echo.&echo.
- for /f "delims=" %%i in (Choice.ini) do (set /p= %%i<NUL&ECHO.)
- set /p choi2=
- for /f "tokens=1,2 delims=:" %%i in (Choice.ini) do (
- if "%choi2%"=="%%i" set AddTy=%%j
- )
- cls&echo.&echo.&echo.
- :AddTo
- set /p AddTo= 请选择需要添加的软件名称:
- set /p AddToP= 请输入需要添加软件的绝对路径(可拖进此窗口):
- echo %AddTo%:%AddToP%>>!AddTy!.ini
- echo.&echo.&echo 软件添加成功!&ping /n 2 127.1>nul
- cls&&echo.&echo.&echo.&echo.&echo.&echo.
- echo 继续添加请输入1&echo.&echo.
- echo 返回主菜单请输入2
- set /p choice=
- if "%choice%"=="1" goto :AddTo
- if "%choice%"=="2" goto :Menu
-
-
- :Choice3
- cls&echo.&echo 请选择需要启动软件的类别:
- set num=1
- if exist Choice.ini del Choice.ini
- for /f %%i in (Choice1.ini) do (
- echo !num!:%%i>>Choice.ini
- set /a num+=1
- )
- cls&echo.&echo.&echo\
- for /f "delims=" %%i in (Choice.ini) do (set /p= %%i<NUL&ECHO.)
- set /p choi3=
- for /f "tokens=1,2 delims=:" %%i in (Choice.ini) do (
- if "%choi3%"=="%%i" set AddTy=%%j
- )
- echo.&echo.&echo 请输入需要启动的项目:&ping /n 1 127.1>nul
- echo.&echo.&echo.
- findstr /n .* !AddTy!.ini
- set /p Sta=
- for /f "tokens=1,2* delims=:" %%i in ('findstr /n .* !AddTy!.ini') do (
- if "!Sta!"=="%%i" set StaT=%%k
- )
- !StaT!
- cls&goto :Menu
-
- :Choice4
- cls&echo.&echo.
- echo 删除分类请输入:1
- echo 删除软件请输入:2
- set /p Delete=
- if "%Delete%"=="1" goto :DeleTy
- if "%Delete%"=="2" goto :DeleTo
- :DeleTy
- cls&echo\&echo\&echo 请输入你想删除的类名:
- set /p DeleTy=
- if exist %DeleTy%.ini (del %DeleTy%.ini) else (echo 此类不存在!&ping /n 2 127.1>nul&goto :Menu)
- findstr /v %DeleTy% Choice.ini>Choice.txt
- findstr /v %DeleTy% Choice1.ini>Choice1.txt
- pause
- for /f "tokens=1* delims=:" %%i in (Choice.txt) do echo %%j>TiH.ini&ping /n 2 127.1>nul
- findstr /n .* TiH.ini>Choice.ini&del TiH.ini&del Choice.txt
- for /f %%i in (Choice1.txt) do echo %%i>TiH1.ini&ping /n 2 127.1>nul
- findstr .* TiH1.ini>Choice1.ini&del TiH1.ini&del Choice1.txt
- goto :Menu
-
- :DeleTo
- cls&echo\&echo\&echo 请输入你想删除的软件所属类
- set /p DeleTy=
- if exist %DeleTy%.ini goto :Nex else (echo 此类不存在!&ping /n 2 127.1>nul&goto :Menu)
- :Nex
- echo 请输入你要删除的软件名称编号:
- findstr /n .* !DeleTy!.ini
- set /p DeleTo=
- for /f "tokens=1,2* delims=:" %%i in ('findstr /n .* !DeleTy!.ini') do (
- 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)
- )
- cls
- 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%"即可。
注意事项:
分类不能用_下画线开头,软件描述不能以+加号结尾.
==============================================- @echo off&color 1f&title 软件管理工具
- :: code by 随风 @bbs.bathome.net 2007-12-11
- set "hui=endlocal&set _abc=&goto start"
- :: 以下三行变量可以有用户自定义
- ::----------------------------------------------------------
- set "wj=peizi.ini"
- set "qqq=exit"
- set "pin=ping/n 2 127.1>nul"
- ::----------------------------------------------------------
- if not exist %wj% cd.>%wj%
- set "qp=cls&echo\&echo\"&set "fan= 按 F 返回主菜单"
- set "List=1、添加新的分类,2、添加新的软件,3、删除分类"
- set "List=%List%,4、删除软件,5、启动软件,6、退出"
- :start
- setlocal enabledelayedexpansion
- for /f "delims=" %%i in (%wj%) do (
- set _+_str_=%%i&set /a su+=1
- if "!_+_str_:~0,1!"=="_" (
- set /a lis+=1&set !lis!=!_+_str_:~1!
- set leixin=!_+_str_:~1!&set !leixin!=!_+_str_:~1!&set su=0
- ) else set !leixin!!su!=%%i
- )
- cls&echo\
- if defined _abc goto !_abc!
- for %%a in (%list%) do set /p= %%a<nul&echo.&echo\
- set /p ss= 请选择
- set "ss=!ss: =!"
- if "%ss%"=="6" exit
- set /a a=1/(ss/1)2>nul||(%qp% 错误的输入,请重新输入.&%pin%&%hui%)
- goto biao%ss%
- :biao1 添加分类
- %qp% 请输入要添加的类名%fan%
- echo\&set /p tjlei=
- if /i "!tjlei!"=="f" %hui%
- if defined !tjlei! %qp% 此类名以存在&%pin%&goto biao1
- echo _!tjlei!>>%wj%
- %qp% !tjlei! 类添加成功%fan%
- set xz=&echo\&set /p xz= 任意键继续或回车继续
- if /i "!xz!"=="f" %hui%
- endlocal&set _abc=biao1&goto start
- :biao2 添加软件
- call :xs1
- echo\&echo 请选择要添加软件的分类(输入编号)%fan%
- echo\&set /p tjfl=
- if /i "!tjfl!"=="f" %hui%
- set tt=&call set tt=_!!%tjfl%!!
- %qp% 请输入要添加的软件的描述,%fan%
- echo\&echo 回车直接进入下一步,添加软件.
- set rjmiaos=&echo\&set /p rjmiaos=
- if /i "!rjmiaos!"=="f" %hui%
- set rjmiaos=!rjmiaos!-+
- %qp% 请输入要添加的软件全路径及文件名或拖放软件来此。
- echo\&echo %fan%
- set tjrj=&echo\&set /p tjrj=
- set tjrj=!tjrj:"=!
- if /i "!tjrj!"=="f" %hui%
- if not exist "!tjrj!" (
- %qp% 没有该软件,或路径不对&%pin%
- endlocal&set _abc=biao2&goto start
- )
- set tjrj2=!rjmiaos! !tjrj!
- for /f "delims=" %%a in (%wj%) do (
- echo %%a>>linfews.txt
- if "%%a"=="!tt!" echo !tjrj2!>>linfews.txt
- )
- del/q "%wj%"
- ren "linfews.txt" "%wj%"
- %qp% !tjrj! 添加成功 %fan%
- set xz=&echo\&set /p xz= 任意键或回车继续
- if /i "!xz!"=="f" %hui%
- endlocal&set _abc=biao2&goto start
- :biao3 删除分类
- if exist "linfews.txt" del/p "linfews.txt"
- call :xs1
- echo\&echo 请输入要删除的类名(输入编号)%fan%
- echo\&echo 注: 此选项将删除所选中的类下面的所有软件名.
- set scfl=&echo\&set /p scfl=
- if /i "!scfl!"=="f" %hui%
- set lili=&set tt=&call set tt=_!!%scfl%!!
- for /f "delims=" %%a in (%wj%) do (
- set sstt=%%a
- if "%%a"=="!tt!" set lili=a
- if defined lili (
- set /a ci+=1
- if !ci! neq 1 (
- if "!sstt:~0,1!"=="_" (set tt=&set lili=) else (set tt=%%a)
- )
- )
- if not "%%a"=="!tt!" (echo %%a>>linfews.txt)
- )
- del/q "%wj%"
- ren "linfews.txt" "%wj%"
- %qp% !tjrj! 删除分类成功 %fan%
- set xz=&echo\&set /p xz= 任意键继续或回车继续
- if /i "!xz!"=="f" %hui%
- endlocal&set _abc=biao3&goto start
- :biao4 删除软件
- if exist "linfews.txt" del/p "linfews.txt"
- call :xs1
- echo\&echo\ 请输入要删除的软件的类名(输入编号)%fan%
- set scfl=&echo\&set /p scfl=
- if /i "!scfl!"=="f" %hui%
- set lili=&set tt=&call set tt=!!%scfl%!!
- cls&call set tt=%%!tt!%%&set kk=&echo\
- :: 显示软件描述及软件名
- for /l %%a in (1 1 100) do (
- call set var=%%!tt!%%a%%
- for /f "tokens=1* delims=+" %%i in ("!var!") do (
- set numa=%%i&set numb=%%j&set numa=!numa:~0,-1!
- )
- if not "!var!"=="" (
- echo ^(%%a^) 软件描述: !numa!&set kk=a
- echo 软件名: !numb!&echo\
- set %%a=!numb!
- )
- if not defined kk (
- set kk=a&set bh=f&cls&echo\
- echo 该分类下没有软件.&%pin%
- ))
- if /i "!bh!"=="f" %hui%
- echo\&echo\&echo 请选择要删除软件的编号%fan%
- set bh=&echo\&set /p bh=
- if /i "!bh!"=="f" %hui%
- call set jieguo=%%!tt!!bh!%%
- call set qido=!!%bh%!!
- :k 去掉文件名的首尾空格
- if "!qido:~0,1!"==" " set qido=!qido:~1!&goto k
- if "!qido:~-1!"==" " set qido=!qido:~0,-1!&goto k
- :: 删除/启动软件
- for /f "delims=" %%a in (%wj%) do (
- if "!ss!"=="4" (
- if not "%%a"=="!jieguo!" echo %%a>>linfews.txt
- ) else if "%%a"=="!jieguo!" start "" "!qido!"&%qqq%
- )
- if "!ss!"=="4" (
- del/q "%wj%"
- ren "linfews.txt" "%wj%"
- %qp% !tjrj! 删除软件成功 %fan%
- set xz=&echo\&set /p xz= 任意键继续或回车继续
- if /i "!xz!"=="f" %hui%
- endlocal&set _abc=biao4&goto start
- )
- :biao5
- goto biao4
- :xs1 显示分类
- cls&echo\
- for /l %%a in (1 1 !lis!) do echo ^(%%a^) !%%a!
- goto :eof
复制代码
[ 本帖最后由 随风 于 2007-12-13 01:16 编辑 ]
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |