|
PE分为光盘启动和硬盘U盘启动,其外置WIM包有可写挂载和非可写……,如果是可写介质启动的话可以实现可写挂载,,光盘是非可写的 所以无法可写挂载WIM 一些软件运行的时候会产生一些文件,如:杀软,迅雷等,如果非可写的话就会出错,,所以我想分两种模式处理 一种是光盘模式,一种是U盘本地模式,,要解决的最关键就是PE是从那种介质启动的,,呵呵,,如果判断CD启动的,就是非可写的,,这样的判断让wim外包软件的启动程序做最好了。。
下边我以opera为例说说我的处理方法。
以下是我的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 启动程序判断此PE是光盘启动的,光盘是非可写介质,为了是程序正常启动,
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
首先用户点击运行的时候,会先判断此PE是不是在CD上运行的,如果是,那么就提示用户一个互动界面,提示此时PE在CD上运行的,建议设置一个本地分区,让软件在此分区上运行,然后用户指定分区,这时候cmd就会在将所有文件复制到本地分区上运行。。
如果判断此PE不再CD上运行,那么直接运行程序就OK了,因为此WIM是可写挂载的。。
好了,现在说话要求吧:
1,WIM包一定要是可写挂载的,不懂可写挂载的两个条件的,先去补课。。
2,此判断程序需要有findstr.exe&fsutil.exe两个文件,一般的PE内核下是没有的,请放在内核下,或者放在此WIM包中,建议放在内核下,应为有好多软件都要这样处理的。。
3,实际操作中有一些想不到的情况,所以要具体处理,不过思路是没有问题的。。
4,此方法是使用ISO和IMG核心的,同样适合是否开B盘的。。
----------------------------------------------------------------------------------------------------------
传统的方法是将这样软件压缩成为7z格式的,然后使用的时候解压到内核或者本地硬盘,
小文件自然可以解压到X盘了,但是比较大的如:卡巴,迅雷,QQ等等,如何释放到X盘的话那就容易出现问题,,如果释放在本地的话,因为文件夹的名字不好处理,,所以及时是再次PE启动也不好清除,使用以上的方法完全可以解决这些问题。
因为是可写挂载的,这个只有光盘启动的时候会出现释放文件在本地的,但是应为PE制作者在制作的时候文件夹是确定的,所以再次PE启动的时候也可以非常容易清除的。。
呵呵,不过大家都知道,现在PE使用者有多少是在本地和U盘启动的,有多少是用光盘启动的。。呵呵,,MS后者很少的说。。。
[ 本帖最后由 mapeimapei 于 2008-11-2 12:37 编辑 ] |
|