标题: [系统相关] 批处理如何扫描硬盘分区中所有系统并确定系统版本 [打印本页]
作者: freesoft00 时间: 2014-3-21 12:53 标题: 批处理如何扫描硬盘分区中所有系统并确定系统版本
如题,硬盘中安装有多系统,都是win系统,如何判读各系统所在分区并判读系统版本
作者: DAIC 时间: 2014-3-21 13:24
如果是手工判断,你一般如何判断某个分区安装了操作系统以及操作系统是什么版本?
作者: freesoft00 时间: 2014-3-21 15:23
手工就是查看分区是否有windows目录,如果有windows目录,并且还有%windir%\system32\slmgr.vbs这类vista、win7、win8特有的文件说明就是nt6系统,如果还有windows\SysWOW64目录说明就是64位nt6系统。否则的话就是nt5系统,nt5系统和nt6系统的具体再分,我不知道如何做,不知道是否有命令可以显示文件版本,xp的文件一般信息是5.1.2600.5512,win7的是6.1.7601.17514
作者: apang 时间: 2014-3-21 16:24
可不可以通过注册表挂载其它分区的windows\system32\config\software文件判断呢?
作者: DAIC 时间: 2014-3-21 16:50
手工就是查看分区是否有windows目录,如果有windows目录,并且还有%windir%\system32\slmgr.vbs这类vista、win7、win8特有的文件说明就是nt6系统,如果还有windows\SysWOW64目录说明就是64位nt6系统。否则的话就是nt5系统
- @echo off
- for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- if exist %%i:\windows (
- if exist "windows\system32\slmgr.vbs" (
- if exist "windows\SysWOW64" (
- echo 64bit NT6
- ) else (
- echo 32bit NT6
- )
- ) else (
- echo NT5
- )
- )
- )
- pause
复制代码
作者: DAIC 时间: 2014-3-21 16:53
不知道是否有命令可以显示文件版本,xp的文件一般信息是5.1.2600.5512,win7的是6.1.7601.17514
- wmic datafile where "Name='C:\\Windows\\notepad.exe'" get Version /value
复制代码
作者: freesoft00 时间: 2014-3-21 20:59
可不可以通过注册表挂载其它分区的windows\system32\config\software文件判断呢?
兄弟这个方法比较好。导出其中的系统版本的键值就知道版本了。如果方便可否写一下具体的实现代码。
wmic 的方法不想用,因为有些环境无法使用wmic,不具有通用性,比如pe环境。
谢谢了!
作者: apang 时间: 2014-3-22 21:22
- @echo off
- set "v1=HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion"
- set "v2=HKLM\My_Hive\Microsoft\Windows NT\CurrentVersion"
- set "Hive=windows\system32\config\software"
- for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- if /i "%%i:"=="%SystemDrive%" (
- for /f "tokens=1,2*" %%a in ('reg query "%v1%"') do (
- if /i "%%a"=="ProductName" (
- echo,分区:%%i
- echo,系统:%%c&echo,
- )
- )
- ) else if exist "%%i:\%Hive%" (
- reg load "HKLM\My_Hive" "%%i:\%Hive%" >nul
- for /f "tokens=1,2*" %%a in ('reg query "%v2%"') do (
- if /i "%%a"=="ProductName" (
- echo,分区:%%i
- echo,系统:%%c&echo,
- )
- )
- reg unload "HKLM\My_Hive" >nul
- )
- )
- pause
复制代码
作者: wlishihua 时间: 2021-8-4 12:07
回复 8# apang
此段代码适应W10各个版本,不识W7,将w7识别为W10 pro 专业 版
作者: wlishihua 时间: 2021-8-14 07:14
本帖最后由 wlishihua 于 2021-8-14 07:18 编辑
根据系统 EXE文件来识别,如果是BIOS引导,那必定C盘有boot文件夹,没有就是UEFI引导,
先以memtest.exe文件确定引导:if EXIST C:\boot\memtest.exe (goto :BIOS) else (goto :UEFI)
:BIOS
:UEFI
再确定是win7 还是win10:
if EXIST C:\Windows\System32\WSReset.exe (goto :W10) else (goto :w7)
:W10
:w7
当然没有系统,没有分区的新硬盘不在考虑识别中,因为没有系统
有没人高手合并一下?
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |