WinPE下挂载wim程序的方法

   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-10-29 13:54:23

WinPE下挂载wim程序的方法的相关文章

在Linux下开发GUI程序的方法

在Linux下开发GUI程序的方法有很多,比如Gnome桌面使用GTK+作为默认的图形界面库,KDE桌面使用Qt作为默认的图形界面库,wxWidgets则是另一个使用广泛的图形库,此外使用Java中的Swing/AWT组件也可以用于开发Linux下的GUI应用. 本文将依次介绍GTK+.Qt.wxWidgets和Swing/AWT,对其进行对比分析. 1. GTK+ 平台支持 虽然GTK+最初是为X Window系统开发的,但是目前已经发展成为一个跨平台的图形界面API,其支持的平台包括: Li

linux不同环境下c/c++程序移植方法

这边之前的大多数项目都用的java,而自己用的c++,等到快要上线的时候才发现线上机器的gcc和libc的版本都巨低,跟自己测试开发用的环境不兼容,编译出的c++可执行文件没法运行.解决c++程序的移植问题费了挺大周章,如下是一个具体记录: 1.问题描述 如上所述,线上机器与开发机环境不兼容,需要做c++程序的移植. 2.表现 细节不表,总之就是程序没法运行,找不到对应的库.如下给出几个跟gcc有关的错误提示: /usr/lib64/libstdc++.so.6: version `GLIBCX

CentOS下挂载NTFS分区的方法

本文参考自http://www.cnblogs.com/gbyukg/archive/2011/11/02/2232343.html centos下想访问NTFS分区,现在普遍的方法是利用ntfs-3g或者内核模块来实现. 一.使用ntfs-3g官方源码编译安装的方法: ntfs-3g下载页面:http://www.tuxera.com/community/ntfs-3g-download/ 安装步骤: tar zxvf ntfs-3g_ntfsprogs-2013.1.13.tgz cd nt

WinPE下修改注册表的方法

使用 Regsnap 等在标准的 Windows 环境下跟踪分析出软件要添加到注册表中的内容,然后将注册表修改条目导出,并改写成批处理文件,保存到软件所在的目录中. 比如对 ACDSEE 这各程序的注册信息跟踪后就保存在: X:PROGRAMS图形图像ACDSEEACDSEE.CMD 建议参照 X:PROGRAMS图形图像ACDSEE 这个程序的保存方式保存你要添加的软件,原则是与主程序集中到相同目录存放(包括可能要用到的图标文件),以便日后维护修改.并参照 其中的 ACDSEE.CMD 这个注

在vs2008中使用AJAX开发.net 2.0下的Web程序的方法

先安装asp.net ajax extensions 此功能是提供.net 2.0 开发AJAX的Client-Side功能 接下来安装Microsoft ASP.NET 2.0 AJAX Templates for Visual Studio 2008 模板套件 这样就可以在vs2008中选择AJAX模板但是必须修改web.config的设定 指定特定的组件版本 最简单的方法是新建一个AJAX 页面 然后复制web.config内容跟旧页面对比 没有的添加上 有的覆盖掉. 加入以下设定复制代码

Redhat 5下挂载NTFS分区的方法

一.最基本的几个命令: 1.查看磁盘分区情况的命令fdisk -l : 比如: [root@localhost beinan]# fdisk -l Disk /dev/hda: 80.0 GB, 80026361856 bytes 255 heads, 63 sectors/track, 9729 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /d

在vs2008中使用AJAX开发.net 2.0下的Web程序的方法_实用技巧

先安装asp.net ajax extensions 此功能是提供.net 2.0 开发AJAX的Client-Side功能     接下来安装Microsoft ASP.NET 2.0 AJAX Templates for Visual Studio 2008 模板套件 这样就可以在vs2008中选择AJAX模板但是必须修改web.config的设定 指定特定的组件版本 最简单的方法是新建一个AJAX 页面 然后复制web.config内容跟旧页面对比 没有的添加上 有的覆盖掉. 加入以下设定

为WinPE打包程序的方法

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

WinPE下安装Win7的方法

  WinPE下安装Win7的方法          使用pe装win7的时候会出现不是有效的32位程序或实在安装时无法找到和创建新的分区. 前提.把win7镜像解压缩到你电脑上. 第一步:先设u盘为第一启动然后在开始行动: 1.重启机器,进入PE系统.关于这点说一下,有些朋友也许不知道什么叫winpe,这个winpe究竟有什么用途,其实你可以把winpe理解为一个微缩版本winxp,他和winxp使用差不多,只是大部分的功能被禁用了,所以他的体积也非常小,虽然大部分的功能被禁用,可是他不影响第