[教程]WinPE系统中加载外置程序PETOOLS文件夹的方法
2022-10-16 2444

大家一定用过各种WinPE,在启动WinPE后,在它的桌面、开始菜单,都有很多程序的快捷方式。

 

内置和外置的区别

内置

应用程序存放在WinPE的本体压缩包中,例如boot.wim,将应用程序和WinPE内核一起打包成一个wim文件,启动这个wim文件后直接就能使用里面的应用程序。

优点:启动完WinPE后可直接移除启动盘,应用程序所产生的各种临时文件都在X盘;

缺点:由于boot.wim内置了大量的应用程序,导致wim文件的体积变大,启动速度变慢;每次更新程序都必须重新打包wim文件;

外置

应用程序跟WinPE各自相对独立,常见的做法是将应用程序目录打包成wim文件,在WinPE启动后挂载wim文件后使用;另一种简单的方法是将应用程序目录直接放在启动盘根目录,WinPE启动后自动搜索根目录下面的应用程序目录,并创建快捷方式到开始菜单或桌面。

优点:不影响boot.wim的体积,WinPE的启动速度快(相对于内置);更新应用程序方便;

缺点:由于应用程序外置,会有被误删除或感染病毒的风险;启动WinPE后不建议移除启动盘,否则无法使用外置的应用程序;

 

之前给大家讲过WinPE添加内置程序的方法,今天就再来简单说说加载外置程序的方法。

 

自动搜索PETOOLS的批处理

这里提供一个网友分享的批处理:

@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

批处理的开头已经介绍了该批处理的使用方法,这里我们就讲解如何应用到实例。

使用步骤

1、解压WinPE的boot.wim文件

2、修改pecmd.ini配置文件,在最末端添加命令:EXEC _PETOOLS.CMD

3、将该批处理保存为PETOOLS.CMD,并保存到解压后的WinPE的system32目录

4、重新打包成boot.wim

5、在你的启动盘根目录创建一个名称为“PETOOLS”的文件夹,在文件夹里面放置任意的可执行程序

使用效果

WinPE启动后自动以最小化方式运行该批处理,批处理会自动搜索所有可见分区根目录下面的PETOOLS文件夹,然后将该文件夹里面的所有可执行文件(*.EXE\*.WIM\*.CMD\*说明*.TXT等程序)创建快捷方式到开始菜单。

如果有多个分区,且每个分区都存在PETOOLS文件夹,批处理会按盘符在开始菜单进行创建快捷方式

现在你是不是已经理解PETOOLS外置程序的使用方法了呢?😀

 

最后于 2022-10-16 被caocaofff编辑 ,原因:
收藏
点赞
道具卡
分享
官方QQ群:872611894(群密码:pecmd.net)
最新回复 (2)
  • avatar image
    爱心会员VIP会员
    mingming 2022-10-16

    老师讲的通俗易懂,点赞一个,比起一条一条写ini文件效率高多了,

    好好学习
  • avatar image
    bnn17 2024-1-18

    谢谢,我们会尝试一下

    171717171717171717
返回