代码以更新
功能比以前更完善、更人性化、代码也更长。。呵呵。
暂未发现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 编辑 ] |