WIM文件在PE中的运行技巧

   WinPE系统分光盘、U盘和硬盘启动,其挂载WIM文件有可写和非可写挂载两种方式,如果是可写介质启动的话可以实现可写挂载(本文不重点探讨)。光盘是非可写的,所以无法可写挂载WIM文件。 一些软件运行的时候会产生一些文件,如:杀软、迅雷等,如果非可写的话就会出错。现提供一种方法彻底解决这样的问题,解决的关键就是判断WinPE系统是从那种介质启动的?如果是CD方式启动的,就是非可写的。这个判断让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:minipeopera.wim (

  if not exist %%a:minipeopera.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

  说明:

  1、首先,用户点击运行opera.wim的时候,会先启动里面的opera.cmd,由它来判断WinPE系统是不是在CD介质上启动运行的,如果是,那么就提示用户设置一个本地分区,当用户指定本地分区后,这时候,opera.cmd就会将所需的文件复制到本地分区上并运行。如果判断WinPE系统在可写介质上运行,那么就直接运行程序。

  2、此判断程序需要有findstr.exe和fsutil.exe这两个文件,一般的WinPE系统内核中是没有的,这两个文件或放在内核中,或放在WIM文件中,但建议放在内核中,因为有许多软件都需要同样的处理。

  3、此方法适用于ISO和IMG核心的WinPE系统,同样也适合是否开B盘的。

时间: 2024-11-03 08:34:25

WIM文件在PE中的运行技巧的相关文章

android-Android 中如何运行 exe

问题描述 Android 中如何运行 exe 比如有一个 potrace.exe 文件, 我在代码里面要运行该文件,实现某种功能,怎么做? 解决方案 如何运行android emulator.exe?在Mac上运行.exe文件从内存运行exe 解决方案二: android下是不能运行EXE文件的.EXE文件包含一个文件头和一个可重定位程序映象.文件头包含MS-DOS用于加载程序的信息,例如程序的大小和寄存器的初始值.文件头还指向一个重定位表,该表包含指向程序映象中可重定位段地址的指针链表.and

如何在PE中更改文件打开方式

  我们在PE中需要改变文件的显示图标或者并联打开程序时,会非常的麻烦,必须得一个一个进行更改.如果用下面的代码,将会非常方便你进行批量更改. 例如,将准备好的ICO图标文件,以这个音乐文件的后戳名进行重命名,如mp3.ico.wma.ico.wav.ico,然后将下面的代码存为.BAT文件,放到ICO图标文件的目录当中运行即可. set FILENAME=%%~nI echo REM 这个 REGTTP.CMD 是用来设置千千静听与其文档的关联,如果没有实现关联,可以手动运行这个批处理.>RE

为什么c程序中创建了数据文件,再次打开源代码运行时数据没了?

问题描述 为什么c程序中创建了数据文件,再次打开源代码运行时数据没了? 为什么c程序中创建了数据文件,再次打开源代码运行时数据没了? http://blog.csdn.net/hackbuteer1/article/details/6573488# 就是这个通讯录的代码,在里面创建通讯录后,再次打开运行显示通讯录时就提示通讯录为空. 解决方案 写入文件是否错误,用winhex或者ultraedit看看写文件本身有没有写对. 如果没有,就是写的问题,如果对的,那么就是读的问题.再具体调试有问题的程

PHP统计目录中文件以及目录中目录大小的方法_php技巧

本文实例讲述了PHP统计目录中文件以及目录中目录大小的方法.分享给大家供大家参考,具体如下: <?php //循环遍历目录中所有的文件,并统计目录和文件的大小 $dirName="phpMyAdmin"; $dir=opendir($dirName); //返回一个资源类型 while($fileName=readdir($dir)){ $file=$dirName."/".$fileName; if($fileName!="." &

eclipse中tomcat运行JSP文件出现以下错误

问题描述 eclipse中tomcat运行JSP文件出现以下错误 java.io.FileNotFoundException: conf ullmodel2xsl.xml (系统找不到指定的路径.) 怎么解决? 解决方案 java.io.FileNotFoundException: conf ullmodel2xsl.xml (系统找不到指定的路径.) 文件没有找到,是否缺少model2xsl.xml文件,或者路径不正确. 解决方案二: java.io.FileNotFoundException

my eclipse-Myclipse 运行sql文件后数据库中中文变成问号

问题描述 Myclipse 运行sql文件后数据库中中文变成问号 拷贝过来的项目,项目中又一个sql文件,用myclipse的database explorer 运行后中文变成???但是用Mysqlworkbench运行sql文件数据库中文就没事,求大神帮我. 解决方案 mysql里面的中文变成问号???的解决方案 解决方案二: 肯定是编码的问题. 比方原来sql文件是 gbk编码 可以转换成一个utf-8编码的sql文件(新建一个copy.sql文件编码在myeclipse中设置成utf-8然

js网页中的(运行代码)功能实现思路_javascript技巧

复制代码 代码如下: <!DOCTYPE html> <html> <head> <meta charset='utf8' /> <title>网页中的运行代码功能</title> <script type="text/javascript"> function runCode(oCode) { var win = window.open('', "_blank", ''); win

csdn 博客中实现运行代码功能实现_javascript技巧

因为没有运行功能,所以想在页面中实现运行代码功能,下面的代码是个不错的实现方法,当然你也可以任何你想实现代码运行功能的地方使用. 复制代码 代码如下: <p> <script type="text/javascript"><!-- function viewPage(html) {     var page = window.open('', '', '');     page.opener = null;     page.document.write(

ASP编程入门进阶(十八):FSO组件之文件操作(中)

fso|编程|fso 学会了FSO提取文件值,也学会了将信息输入到文件中,那下面就再来应用应用下. 不知道你有没有这样的习惯:看到一个文件,不自觉的右键选择用记事本打开.呵呵,几乎没有哪个文件是不可以的.所以现在,可以默认所有文件都是文本,只是后缀名不同而已:那么也就是说,现在可以提取任一文件的内容信息.OK,就来想象一下: 1,提取一个文件的路径(采用file按钮进行查找定位)2,将该路径文件打开,并读取所有行3,显示读取的信息 一.viewcode.asp <%Function ShowCo