歌理 发表于 2012-7-24 16:24:26

全球第二发,无忧最完美的、真正单文件的PETOOLS挂载工具CMD(1227最后更新)

一、无忧上已经有不少PEOOLS挂载工具,但是少存在问题,<br />二、最无聊的是,明明是简单的一个CMD加INI,就有人非加密封装成一个EXE文件,让人看了就烦。


==========以下不需要回复即可看见=====================
2012.12.27最后更新,肯定不再更新了,此版本人自用几个月了,没发现问题,回报无忧,第三版,优化了一些代码,运行更高效。

主要更新:自动加载UD中PETOOLS到开始菜单!!!!!!!!!!!!!!!!!!!!!!!!!
(需要fbinst.exe配合,一般PE均有,若无,请将其放于与本程序同一目录即可,本程序可放于任意位置)
 (加载为复制方式,而非快捷方式,需要一点时间复制文件,更加方便)

使用方法:在任意地方(如pecmd.ini中或桌面)执行PETOOLS.CMD即可)

程序如下:
==========================================================
@echo off
:: 增加自动挂载 UD\PETOOLS功能
rem 程序名称:PETOOLS.CMD

:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echoPETools扩展目录搜索安装程序...........................
title 挂载PETOOLS
rem程序功能:自动搜索加载外置\PETOOLS\下的程序,以快捷方式的形式,挂载到开始菜单,免除LINK命令的繁琐
rem默认搜索:自动搜索所有分区根目录下 PETOOLS,以盘符区分
rem特定挂载:带指定目录为参数,可以仅挂载该目录下的程序,如 挂载PETOOLS.CMD D:\绿化工具 
rem特定挂载时,若再加参数 展开,如 D:\绿化工具 展开,则绿化工具下的程序将直接展开到开始菜单
rem 若无展开参数,则自动以目录名取代PETOOLS_X盘,如绿色工具,适用于正常系统或PE
rem PE\windows通用:本程序为独立程序,可放于任意位置,支持XP\03\win7 PE,若有PECMD.exe,同时支持正常 WINDOWS xp\w7 系统!
rem 在windows 下,如执行:搜索加载PETOOLS.CMD D:\绿化工具,会将绿化工具 挂载到开始菜单(本程序目录需有PECMD.EXE)
rem 本程序仅挂载 *.EXE\*.WIM\*.CMD\*说明*.TXT等程序,自动挂载PETOOLS及其下子目录所有*EXE等可执行文件
rem 过滤功能:若不想显示某些文件及子目录,仅需将该文件或子目录 属性设为:隐藏即可,不影响使用,快捷菜单更加简洁
rem 注册功能:能自动执行PETOOLS及其下子目录中的 _Setup.CMD,显式执行,如将绿化、注册、RegDoc等更名为:_setup.CMD即可
rem 自定义图标:图标ICO文件与执行文件名相同即可
rem
rem 最新更新:支持UD隐藏分区中的PETOOLS,需fbinst.exe文件
rem 本程序在无忧高手的基础上进行完美,真正的单文件,windows及PE通用,所挂软件尽可能为绿色软件
echo 无忧启动 歌理 20121227(第三版,无忧论坛) 
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo.

PUSHD %~dp0
SET TP=%CD%

set LNKinidir=%temp%
set petoolsdir=%~1
set petools2=%~2
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Call :PETOOLS_LNK
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::



if "%~1"=="" goto :eof
if not defined StartMenu goto :eof
if not exist "%~1" goto :eof
set PEdrv=%~d1
set 外置程序=\PETools_%PEdrv::=%盘
if not "%petools2%"#==""# SET 外置程序=\%petools2%
if "%petools2%"#=="展开"# SET 外置程序=
SET 挂载位置=%%StartMenu%%%外置程序%

rem if not "%外置程序%"#==""# IF EXIST "%StartMenu%%外置程序%" PECMD file "%StartMenu%%外置程序%"

set petoolsexe=%LNKinidir%\petoolsexe.lst
set petoolslnk=%LNKinidir%\petoolslnk.INI
set petoolsetup=%LNKinidir%\petoolsetup.lst

:START
DEL "%petoolsexe%" 2>nul
DEL "%petoolslnk%" 2>nul
DEL "%petoolsetup%" 2>nul
PUSHD "%~F1"
>"%petoolsexe%" dir /s/b *.wim *.cmd *.bat *.exe readme*.txt *说明*.txt
POPD
for /f "usebackq delims=" %%i in ("%petoolsexe%") do CALL :MAKE_LINK "%%i"
PECMD LOAD %petoolslnk%

PUSHD "%~F1"
>"%petoolsetup%" dir /s/a/b _setup.CMD _setup.BAT 2>nul
if exist "%petoolsetup%" For /f "delims=" %%i in ('type "%petoolsetup%"') do (
PECMD EXEC !=%%i
)
POPD
goto :eof

:MAKE_LINK
SETLOCAL
if "%~1"=="" goto :eof
set toolfile=%~1
if /i "%~n1"=="_setup" goto :eof
if /i "%~n1"=="petools" goto :eof
if /i "%~n1"=="直接挂载到开始菜单" goto :eof

set myICO=
SET lnkname=%~dpn1
if exist "%lnkname%.ICO" set myICO=,,%lnkname%.ICO
call,set "lnkname=%%lnkname:%petoolsdir%\=%%"
>>"%PEtoolslnk%" echo.LINK %挂载位置%\%lnkname%,%toolfile%%myICO%
GOTO :EOF


::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

:PETOOLS_LNK
IF NOT EXIST "%SystemRoot%\system32\PECMD.exe"if not EXIST "%TP%\PECMD.exe" echo 请将PECMD.EXE复制到本程序目录下,再运行!&&pause&&exit
IF NOT EXIST "%SystemRoot%\system32\PECMD.exe" copy "%TP%\PECMD.exe" "%SystemRoot%\system32\PECMD.exe"
set CMDfile=%~F0
>"%LNKinidir%\PETOOLS_LNK.CMD" echo @echooff
TYPE "%CMDfile%"|FIND /v /i "PETOOLS_LNK">>"%LNKinidir%\PETOOLS_LNK.CMD"
echo 正在搜索 PETOOLS,请不要关闭本窗口,搜索完毕会自动关闭.......
echo .
rem 若无展开,取目录名,挂载用
set toolsdir=%tp%
if%petools2%#==# call :getoolsdir
if%petools2%#==# set petools2=%toolsdir%
if not "%petoolsdir%"#==""# PECMD EXEC !="%LNKinidir%\PETOOLS_LNK.CMD""%petoolsdir%" "%petools2%"


set drv=C D E F G H I J K L M N O P Q R S T U V W X Y Z
if "%petoolsdir%"#==""#fbinst (ud) output "PETOOLS/*" X:/
if "%petoolsdir%"#==""# FOR %%a in (%drv%) do (
      if exist "%%a:\PETOOLS" set petoolsdir=%%a:\PETOOLS
      if exist "%%a:\PETOOLS" PECMD EXEC !="%LNKinidir%\PETOOLS_LNK.CMD""%%a:\PETOOLS"
)
echo .
rem if exist "%petoolsdir%" PECMD KILl explorer.exe
rem if exist "%petoolsdir%" if not exist x:\ PECMD EXEC explorer.exe
if exist "%petoolsdir%" echo PETOOLS已经被装载到了开始菜单!!!!!
if not exist "%petoolsdir%"ECHO 没有搜索到 PETOOLS 文件夹!!!
del "%LNKinidir%\PETOOLS*.*" 2>nul
pecmd wait -3000
exit
GOTO :eof


rem 取目录名
:getoolsdir
for %%n in (1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20) do call :getdir01
goto :eof

:getdir01
for /f "delims=\" %%i in ("%toolsdir%") do set a=%%i&&call :getdir02
goto :eof

:getdir02
call,set "toolsdir=%%toolsdir:%a%\=%%"
goto :eof








================================================================================








本CMD是在无忧高手的基础上进行完美修改的(不知道是谁最先搞出来的,知道的同学,请跟贴说一下表示感谢
真正的单文件
和以前其他CMD相比,保证成功挂载,最大特点是:可以隐藏不需要的选项,可以挂载到正常的windows系统(绿色软件常用方法
可以自定义图标
好了,不说,自己看看吧
用法举例:PETOOLS .cmd     `直接点击运行,自动搜索PETOOLS并挂载到开始菜单
PETOOLS .cmd “d:\绿色工具”   `仅将 d:\绿色工具\ 下的程序挂到开始菜单,非常适合外置程序,适合正常系统
-------------------------------------------------------------------------------------===========以下不需要回复即可看见=====================================
-------------------------------------------------------------------------------------===========以下不需要回复即可看见==============================================</font>
@echo off
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo PETools扩展目录搜索安装程序...........................
title 搜索加载PETOOLS
echo 程序功能:自动搜索加载外置\PETOOLS\下的程序,以快捷方式的形式,挂载到开始菜单,免除LINK命令的繁琐
echo 默认搜索:自动搜索所有分区根目录下 PETOOLS,以盘符区分
echo 定制挂载:带指定目录为参数,可以仅挂载该目录下的程序,如 搜索加载PETOOLS.CMD D:\绿化工具 
echo PE\windows通用:本程序为独立程序,可放于任意位置,支持XP\03\win7 PE,若有PECMD.exe,同时支持正常 WINDOWS xp\w7 系统!
ECHO 在windows 下,如执行:搜索加载PETOOLS.CMD D:\绿化工具,会将绿化工具 挂载到开始菜单(本程序目录需有PECMD.EXE)
echo 本程序仅挂载 *.EXE\*.WIM\*.CMD\*说明*.TXT等程序,自动挂载PETOOLS及其下子目录所有*EXE等可执行文件
echo 过滤功能:若不想显示某些文件及子目录,仅需将该文件或子目录 属性设为:隐藏即可,不影响使用,快捷菜单更加简洁
echo 注册功能:能自动执行PETOOLS及其下子目录中的 _Setup.CMD,显式执行,如将绿化、注册、RegDoc等更名为:_setup.CMD即可
echo 自定义图标:图标ICO文件与执行文件名相同即可
echo.
echo 本程序在无忧高手的基础上进行完美,真正的单文件,windows及PE通用,所挂软件尽可能为绿色软件
echo 无忧启动 歌理 20120719 
echo ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo PETools扩展目录搜索安装程序...........................
PUSHD %~dp0
SET TP=%CD%
set LNKinidir=%temp%
set petoolsdir=%~1
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Call :PETOOLS_LNK
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if "%~1"=="" goto :eof
if not defined StartMenu goto :eof
if not exist "%~1" goto :eof
set PEdrv=%~d1
set 外置程序=PETools_%PEdrv::=%盘
SET 挂载位置=%%StartMenu%%\%外置程序%
if exist "%LNKinidir%\PETOOLS_LNT.tmp" SET 挂载位置=%%StartMenu%%
if not "%挂载位置%"=="%%StartMenu%%" IF EXIST "%StartMenu%\%外置程序%" RD /S /Q "%StartMenu%\%外置程序%"
set petoolsexe=%LNKinidir%\petoolsexe.lst
set petoolslnk=%LNKinidir%\petoolslnk.INI
set petoolsetup=%LNKinidir%\petoolsetup.lst
:START
DEL "%petoolsexe%" 2>nul
DEL "%petoolslnk%" 2>nul
DEL "%petoolsetup%" 2>nul
PUSHD "%~F1"
>"%petoolsexe%" dir /s/b *.wim *.cmd *.bat *.exe readme*.txt *说明*.txt
POPD
for /f "usebackq delims=" %%i in ("%petoolsexe%") do CALL :MAKE_LINK "%%i"
PECMD LOAD %petoolslnk%
PUSHD "%~F1"
>"%petoolsetup%" dir /s/a/b _setup.CMD _setup.BAT 2>nul
if exist "%petoolsetup%" For /f "delims=" %%i in ('type "%petoolsetup%"') do (
PECMD EXEC =%%i
)
POPD
goto :eof
:MAKE_LINK
SETLOCAL
if "%~1"=="" goto :eof
set toolfile=%~1
if /i "%~n1"=="_setup" goto :eof
set myICO=
SET lnkname=%~dpn1
if exist "%lnkname%.ICO" set myICO=,,%lnkname%.ICO
call,set "lnkname=%%lnkname:%petoolsdir%\=%%"
>>"%PEtoolslnk%" echo.LINK %挂载位置%\%lnkname%,%toolfile%%myICO%
GOTO :EOF

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:PETOOLS_LNK
IF NOT EXIST "%SystemRoot%\system32\PECMD.exe" copy "%TP%\PECMD.exe" "%SystemRoot%\system32\PECMD.exe"
::直接带目录运行
set CMDfile=%~F0
set PETOOLS_LNK=\PEtools
if not "%petoolsdir%"#==""# set PETOOLS_LNK=%petoolsdir%
if PETOOLS_LNK==PETOOLS_LNK if exist "%LNKinidir%\PETOOLS_LNT.tmp" del "%LNKinidir%\PETOOLS_LNT.tmp"
if not "%petoolsdir%"#==""# >"%LNKinidir%\PETOOLS_LNT.tmp" echo %PETOOLS_LNK%
>"%LNKinidir%\PETOOLS_LNK.ini" echo FORX @%PETOOLS_LNK%,TOOLS,0,EXEC !="%LNKinidir%\PETOOLS_LNK.CMD" "%%TOOLS%%"
>>"%LNKinidir%\PETOOLS_LNK.ini" echo FILE "%LNKinidir%\PETOOLS*.*"
>>"%LNKinidir%\PETOOLS_LNK.ini" echo ifex %%TOOLS%%\,KILl explorer.exe
if not exist x:\ >>"%LNKinidir%\PETOOLS_LNK.ini" echo ifex %%TOOLS%%\,EXEC explorer.exe
>>"%LNKinidir%\PETOOLS_LNK.ini" echo ifex %%TOOLS%%\,!MESS 没有搜索到 PETOOLS 文件夹!@PETOOLS_LNK通知 #ok *3000
>>"%LNKinidir%\PETOOLS_LNK.ini" echo ifex %%TOOLS%%\,MESS PETOOLS已经被装载到了开始菜单。@PETOOLS_LNK通知 #ok *3000
>"%LNKinidir%\PETOOLS_LNK.CMD" echo @echo off
TYPE "%CMDfile%"|FIND /v /i "PETOOLS_LNK">>"%LNKinidir%\PETOOLS_LNK.CMD"
start PECMD LOAD %LNKinidir%\PETOOLS_LNK.ini
echo 正在搜索 PETOOLS.......
ping -n 5 127.0.0.1>nul
exit
GOTO :eof




======================================7.25是更新====================================================

<font color="magenta">7.25更新:</font>
<font color="magenta">首先感谢各位童鞋鼓励及建议,作了如下改进:</font>
<font color="magenta">1、取消了搜索A盘,避免出现提示找不到A盘的错误</font>
<font color="magenta"></font>
<font color="magenta">2、增加了参数 展开,功能是:默认挂载到开始菜单的PETOOLS_x盘,加此参数后,将直接挂载到开始菜单,当然,更方便,开始菜单也变得更长,自由选择吧</font>
<font color="magenta"></font>
<font color="magenta">3、重新优化了代码,运行效率更高</font>
=================================================

@echo off
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo PETools扩展目录搜索安装程序...........................
title 搜索加载PETOOLS
echo 程序功能:自动搜索加载外置\PETOOLS\下的程序,以快捷方式的形式,挂载到开始菜单,免除LINK命令的繁琐
echo 默认搜索:自动搜索所有分区根目录下 PETOOLS,以盘符区分
echo 特定挂载:带指定目录为参数,可以仅挂载该目录下的程序,如 搜索加载PETOOLS.CMD D:\绿化工具 
echo 特定挂载时,若再加参数
展开,如 D:\绿化工具
展开,则绿化工具下的程序将直接展开到开始菜单
echo PE\windows通用:本程序为独立程序,可放于任意位置,支持XP\03\win7 PE,若有PECMD.exe,同时支持正常 WINDOWS xp\w7 系统!
ECHO 在windows 下,如执行:搜索加载PETOOLS.CMD D:\绿化工具,会将绿化工具 挂载到开始菜单(本程序目录需有PECMD.EXE)
echo 本程序仅挂载 *.EXE\*.WIM\*.CMD\*说明*.TXT等程序,自动挂载PETOOLS及其下子目录所有*EXE等可执行文件
echo 过滤功能:若不想显示某些文件及子目录,仅需将该文件或子目录 属性设为:隐藏即可,不影响使用,快捷菜单更加简洁
echo 注册功能:能自动执行PETOOLS及其下子目录中的 _Setup.CMD,显式执行,如将绿化、注册、RegDoc等更名为:_setup.CMD即可
echo 自定义图标:图标ICO文件与执行文件名相同即可
echo.
echo 本程序在无忧高手的基础上进行完美,真正的单文件,windows及PE通用,所挂软件尽可能为绿色软件
echo 无忧启动 歌理 20120725 
echo :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
echo.
PUSHD %~dp0
SET TP=%CD%
set LNKinidir=%temp%
set petoolsdir=%~1
set petools2=%2
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
Call :PETOOLS_LNK
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
if "%~1"=="" goto :eof
if not defined StartMenu goto :eof
if not exist "%~1" goto :eof
set PEdrv=%~d1
set 外置程序=PETools_%PEdrv::=%盘
SET 挂载位置=%%StartMenu%%\%外置程序%
if %petools2%#==展开# SET 挂载位置=%%StartMenu%%
if not "%挂载位置%"=="%%StartMenu%%" IF EXIST "%StartMenu%\%外置程序%" RD /S /Q "%StartMenu%\%外置程序%"
set petoolsexe=%LNKinidir%\petoolsexe.lst
set petoolslnk=%LNKinidir%\petoolslnk.INI
set petoolsetup=%LNKinidir%\petoolsetup.lst
:START
DEL "%petoolsexe%" 2>nul
DEL "%petoolslnk%" 2>nul
DEL "%petoolsetup%" 2>nul
PUSHD "%~F1"
>"%petoolsexe%" dir /s/b *.wim *.cmd *.bat *.exe readme*.txt *说明*.txt
POPD
for /f "usebackq delims=" %%i in ("%petoolsexe%") do CALL :MAKE_LINK "%%i"
PECMD LOAD %petoolslnk%
PUSHD "%~F1"
>"%petoolsetup%" dir /s/a/b _setup.CMD _setup.BAT 2>nul
if exist "%petoolsetup%" For /f "delims=" %%i in ('type "%petoolsetup%"') do (
PECMD EXEC =%%i
)
POPD
goto :eof
:MAKE_LINK
SETLOCAL
if "%~1"=="" goto :eof
set toolfile=%~1
if /i "%~n1"=="_setup" goto :eof
set myICO=
SET lnkname=%~dpn1
if exist "%lnkname%.ICO" set myICO=,,%lnkname%.ICO
call,set "lnkname=%%lnkname:%petoolsdir%\=%%"
>>"%PEtoolslnk%" echo.LINK %挂载位置%\%lnkname%,%toolfile%%myICO%
GOTO :EOF

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:PETOOLS_LNK
IF NOT EXIST "%SystemRoot%\system32\PECMD.exe" if not EXIST "%TP%\PECMD.exe" echo 请将PECMD.EXE复制到本程序目录下,再运行!&&pause&&exit
IF NOT EXIST "%SystemRoot%\system32\PECMD.exe" copy "%TP%\PECMD.exe" "%SystemRoot%\system32\PECMD.exe"
set CMDfile=%~F0
>"%LNKinidir%\PETOOLS_LNK.CMD" echo @echo off
TYPE "%CMDfile%"|FIND /v /i "PETOOLS_LNK">>"%LNKinidir%\PETOOLS_LNK.CMD"
echo 正在搜索 PETOOLS,请不要关闭本窗口,搜索完毕会自动关闭.......
echo .
if not "%petoolsdir%"#==""# PECMD EXEC ="%LNKinidir%\PETOOLS_LNK.CMD" "%petoolsdir%" %petools2%
set drv=C D E F G H I J K L M N O P Q R S T U V W X Y Z
if "%petoolsdir%"#==""# FOR %%a in (%drv%) do (
if exist "%%a:\PETOOLS" set petoolsdir=%%a:\PETOOLS
if exist "%%a:\PETOOLS" PECMD EXEC !="%LNKinidir%\PETOOLS_LNK.CMD" "%%a:\PETOOLS"
)
echo .
if exist "%petoolsdir%" PECMD KILl explorer.exe
if exist "%petoolsdir%" if not exist x:\ PECMD EXEC explorer.exe
if exist "%petoolsdir%" echo PETOOLS已经被装载到了开始菜单!!!!!
if not exist "%petoolsdir%" ECHO 没有搜索到 PETOOLS 文件夹!!!
del "%LNKinidir%\PETOOLS*.*" 2>nul
pecmd wait -3000
exit
GOTO :eof

--------------------------------------------------


贴两个图吧,自动搜索及展开对比图

[ 本帖最后由 歌理 于 2012-12-27 19:02 编辑 ]

月光海洋 发表于 2012-7-24 16:30:04

支持一下楼主…

HB天意 发表于 2012-12-27 16:58:05

回复 #96 歌理 的帖子

哦,加入搜索UD区软件功能。好,更新下。

[ 本帖最后由 yidawpf 于 2012-12-27 16:59 编辑 ]

8696648 发表于 2012-7-24 16:39:08

谢谢楼主无私奉献,辛苦了.

yuan-0918 发表于 2012-7-24 17:04:30

XP下试用通过,蛮好

wangerkai 发表于 2012-7-24 17:33:20

回复 #1 歌理 的帖子

那么图标呢!!!!!!!

liuyindou 发表于 2012-7-24 18:35:50

试一试这个。

HY 发表于 2012-7-24 18:43:45

楼主辛苦,谢谢分享!!!

不才 发表于 2012-7-24 19:32:57

嘿嘿,偶最喜欢看到的就是下面这句:
===以下不需要回复即可看见==

谢谢!有空认真学习下。

翅膀 发表于 2012-7-24 19:47:34

回复 #8 不才 的帖子

有些时候,风格比技术更重要……

66369 发表于 2012-7-24 19:57:51

过客不收藏的话.就可惜了.

谢谢楼主的辛勤劳动.
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 全球第二发,无忧最完美的、真正单文件的PETOOLS挂载工具CMD(1227最后更新)