[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] 批处理 如何判断当前运行的系统是 WinPE?

批处理 如何判断当前运行的系统是 WinPE?

判断系统类型:

ver|findstr "5.1 ...
ver|findstr "6.1 ...

如题

用 ver 可以判断硬盘中正在运行的操作系统的版本(XP或win7等),当然可以判断出正在运行的 PE 版本,问题是,如何判断当前运行的系统就是 WinPE 而不是硬盘中的系统呢?

我们只知道,WinPE 是在内存中运行的、一般设定盘符为 X:\ 盘(Ram 盘),但问题是:并非在内存中的都是 PE,也并非有 X:\ 盘(Ram 盘)的就是PE在运行。
要说特定的文件吧,pecmd、peshell ...... ,但也有 explorer 加载的(非 pecmd),其中就没有上述文件。
因此,求助大师们。

先在此感谢了!!!
76626yyn

楼主在wuyou 也发帖了吧?
我说的是判断系统盘是否为X:盘,还有info大元帅在注册表判断minint,貌似都不行,呵呵。。。

TOP

PE种类有些多,比较常见的是win2003内核和win7内核的居多,也有Linux内核的。要判断版本,需找到个比较共通的特点再判断
---学无止境---

TOP

楼主在wuyou 也发帖了吧?
我说的是判断系统盘是否为X:盘,还有info大元帅在注册表判断minint,貌似都不行 ...
apang 发表于 2012-3-4 21:05

暨 PE种类有些多,比较常见的是win2003内核和win7内核的居多,也有Linux内核的。要判断版本,需找到个比较共通的特点再判断

是的,在 wuyou 也发帖求助了。

  “判断 X:盘、注册表的 minint”,通常都是 X:盘,但不是唯一的,minint 我倒不了解。
  确实要“要判断版本,需找到个比较共通的特点再判断”才好。
76626yyn

TOP

本帖最后由 ivor 于 2012-3-5 20:25 编辑

1.判断ComSpec的路径,ComSpecPE下X:\驱动器,而正常的情况下是C:\
2.可以调用windows系统中常见的命令,例如PE都不会有net命令吧

TOP

1.判断ComSpec的路径,ComSpecPE下X:\驱动器,而正常的情况下是C:\
2.可以调用windows系统中常见的命令,例如 ...
ivor 发表于 2012-3-5 20:23


判断ComSpec的路径,ComSpecPE下X:\驱动器 是个好办法,请写出判断代码,谢谢!

判断 net 命令?PE开启网络后,也运行 net 的。
76626yyn

TOP

判断PE有何目的?

TOP

制作PE安装工具---对当前运行系统的判断。
76626yyn

TOP

可用的 系统变量 太多了 为何不试系统变量呢

TOP

在Windows和PE里面分别运行一下set命令,看看系统环境变量有没有合适的。

TOP

本帖最后由 yuanyannian 于 2012-3-6 20:07 编辑

回复 10# find


    判断 %comSpec% 与判断 X: 盘一样;PE的注册表不是统一的,其系统变量的名称也不是统一的,即便是有别于系统,通用性也不强。

附上一段代码---摘自“小马Win7PE安装工具”
  1. @echo off
  2. rem ......
  3. :checkos
  4. ver|find /i " 6.1">nul &&set winver=win7&&  set theos=win7
  5. ver|find /i " 6.0">nul &&set winver=vista&&  set theos=vista
  6. ver|find /i " 5.1">nul &&set winver=winnt&&  set theos=xp
  7. ver|find /i " 5.2">nul &&set winver=winnt&&  set theos=2003
复制代码
::假如,这样:
  1. if /i "%theos%"="xp" (
  2.   if /i exist "x:\" (
  3.     echo The os is Windows XP PE.) else echo The os is Windows XP.
  4. )
复制代码
其中 if /i exist "x:\" 便是问题的焦点。
76626yyn

TOP

本帖最后由 yuanyannian 于 2012-3-6 20:43 编辑

回复 11# yuanyannian


    盘龙城城主--info大元帅的判断 /minint 似乎是好办法。
  1. set wp=reg query HKLM\SYSTEM\CurrentControlSet\Control /v SystemStartOptions
  2. %wp%|find "MININT"&&(echo WinPE)
复制代码
系统(或PE)启动加载后,对应于“SystemBootDevice”的不同(系统所在位置---如 multi(0)disk(0)rdisk(0)partition(1) 或 Ramdisk(0)),“SystemStartOptions”的值也不同(如 NOEXECUTE=OPTIN  FASTDETECT ...;minint ...),简单来讲就是(可能?)在实机中运行的系统与内存中运行的系统其“SystemStartOptions”的值是不同的,后者便是 MININT ...,本人只是查看了实机和PE下XP、Win7中的“SystemStartOptions”的值来说的,究竟是不是具有“普遍性”,还请大师们定夺啦!
76626yyn

TOP

返回列表