PE中是怎么完成程序运行的呢?双系统告诉你:以挂载wim是当中的一类办法,接下来便以opera.wim为例解释下处理方法,假定opera.wim里有两个文件,一个opera.exe,另一个opera.cmd,而关键的部分便是opera.cmd,它的代码如下:
@echo off
COLOR 5f
for %%a in (y x w v u t s r q p o n m l k j i h g f e d c) do (
if exist %%a:\minipe\opera.wim (
if not exist %%a:\minipe\opera.wim\ (
fsutil fsinfo drivetype %%a:|findstr /i "CD">nul&&(
call :one
exit)||(
call :two
exit)
)
)
)
:one
echo.
echo
echo.
echo. 麻烦指定文件运行的分区,咱们会把文件拷贝至你指定分区的peopera下,以便
echo.
echo. 下次能够减少此次操作。
echo. -------------------------------------------------------------------
echo.
set /p TP=请输入运行分区
echo.
echo.
Set TP=%TP:~0,1%
xcopy Y:\opera /e %TP%:\peopera\ /y /h /r>nul 2>nul
attrib -r -a %TP%:\peopera /s /d
pushd %TP%:\peopera
start operausb.exe
)
goto :eof
:two
start operausb.exe
goto :eof
解释:
1)、用户点击运行opera.wim之时,会优先启动里边的opera.cmd,由其来判定WinPE系统是否在CD介质上启动运行的,若是,那便提示用户设置一个本地分区,在用户指定本地分区后,此时,opera.cmd便会把所需的文件拷贝至本地分区上且运行。假如判定WinPE系统在可写介质上运行,则便直接运行程序。
2)、这个判断程序需包括findstr.exe与fsutil.exe这两个文件,普通的WinPE系统内核里是无的,这两个文件可放在内核里,可放在WIM文件里,可最好放在内核里,由于存在很多软件均需一样的处理。
3)、这个办法适用于ISO与IMG核心的WinPE系统,一样也适用是不是开B盘的。
希望上面所讲的对大家有所帮助!