标题: [系统相关] [已解决]批处理判断C盘的系统版本号,但是对WIN7不能识别? [打印本页]
作者: wlishihua 时间: 2021-8-3 11:15 标题: [已解决]批处理判断C盘的系统版本号,但是对WIN7不能识别?
本帖最后由 wlishihua 于 2021-8-6 09:14 编辑
判断C盘的系统版本号,对WIN10各个版本能识别,但是对WIN7不能识别- @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 ) 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
复制代码
判断C盘的系统版本号,对WIN10各个版本能识别,但是对WIN7不能识别。它将WINDOWS7旗舰版识别为WINDOWS10 PRO
不知道各位有什么解决办法没有
作者: newswan 时间: 2021-8-3 21:29
- reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v "ProductName"
复制代码
复制代码
作者: wlishihua 时间: 2021-8-4 09:05
回复 2# newswan
这个是在PE下运行并识别。这段代码加在哪里?
作者: wlishihua 时间: 2021-8-4 09:05
回复 2# newswan
这个是在PE下运行并识别。这段代码加在哪里?
作者: newswan 时间: 2021-8-4 11:55
回复 4# wlishihua
reg query 和你的等效
但是你可以用这个改一下你的 reg query 语句 ,用 /v
pe下,systeminfo 可能没用
用dism试试- Dism /Image:C:\test\offline /Get-CurrentEdition
- Dism /Online /Get-CurrentEdition
复制代码
dism++ 能识别,但不知道命令行怎么使用,你去看看
作者: yakeyun 时间: 2021-8-5 18:43
回复 1# wlishihua
给你一个思路,如果不判断是专业版和其它版本,仅仅是区分win7和win10,可以判断”C:\Program Files\WindowsApps“目录是否存在。
如果存在此目录就是win10,否则就是win7,只有win10才有APP目录。
作者: cmd1152 时间: 2021-8-5 18:47
本帖最后由 cmd1152 于 2021-8-5 21:23 编辑
回复 wlishihua
给你一个思路,如果不判断是专业版和其它版本,仅仅是区分win7和win10,可以判断”C ...
yakeyun 发表于 2021-8-5 18:43
就是下面命令- if EXIST C:\Program Files\WindowsApps (set xt=Win10) else (set xt=win7)
复制代码
作者: newswan 时间: 2021-8-5 19:40
通过注册表判断,不可能“将WINDOWS7旗舰版识别为WINDOWS10 PRO”
作者: smss 时间: 2021-8-5 19:56
通过ver再截取进行判断才是王道
作者: wlishihua 时间: 2021-8-5 21:12
回复 8# newswan
在PE下不能识别,注册表不好办,因为它只认X盘的注册表
作者: wlishihua 时间: 2021-8-5 21:15
回复 7# cmd1152
运行不了
作者: cmd1152 时间: 2021-8-5 21:23
回复 11# wlishihua
代码错了,你现在再看看。
作者: wlishihua 时间: 2021-8-5 21:32
回复 12# cmd1152
if EXIST C:\Program Files\WindowsApps (set xt=Win10) else (set xt=win7)
没什么显示,如果识别是WIN10就执行xxx.exe
如果识别是WIN7就执行DDD.exe
作者: cmd1152 时间: 2021-8-5 21:55
回复 13# wlishihua
差点忘了(我因为是那个帖子)
代码:- if EXIST C:\Program Files\WindowsApps (start xxx.exe) else (start DDD.exe)
复制代码
作者: wlishihua 时间: 2021-8-5 21:58
本帖最后由 wlishihua 于 2021-8-5 22:01 编辑
运行不了 判断C盘可以执行 ,判断文件夹不能执行
if EXIST C:\ (start xxx.exe) else (start DDD.exe)
作者: cmd1152 时间: 2021-8-5 22:01
回复 15# wlishihua
证明你的系统不是win10
如果存在此目录就是win10,否则就是win7,只有win10才有APP目录。
作者: wlishihua 时间: 2021-8-5 22:06
本帖最后由 wlishihua 于 2021-8-5 22:21 编辑
回复 16# cmd1152
是WIN10
是不是是隐藏的文件夹的原因
试了一下找这个splwow64.exe执行文件就能识别
if EXIST C:\Windows\splwow64.exe (start xxx.exe) else (start DDD.exe)
WSReset.exe用这个,WIN7没这个文件
if EXIST C:\Windows\System32\WSReset.exe (start xxx.exe) else (start DDD.exe)
在W7测试一下,通过,谢谢!
作者: cmd1152 时间: 2021-8-5 22:14
回复 17# wlishihua
你显示 隐藏文件/文件夹/驱动器 + 显示隐藏的系统文件 看看有没有这个目录
作者: cmd1152 时间: 2021-8-5 22:15
回复 17# wlishihua
或者要执行的DDD.exe不对,DDD.exe在不在当前目录下
作者: cmd1152 时间: 2021-8-5 22:35
回复 18# cmd1152
是[已解决]不是已解决:...
作者: 路过 时间: 2021-8-6 09:51
运行CMD.exe,第一行不就给出了你的系统名称和版本么- @echo off
- (echo;exit|%ComSpec%)|find "版本 10." && set WinVer=10
- (echo;exit|%ComSpec%)|find "版本 7." && set WinVer=7
- echo;WINDOWS%WinVer%
- pause
- exit
复制代码
作者: qixiaobin0715 时间: 2021-8-6 10:29
"已解决"只是表示帖子已完结,形式不重要,表达准确即可。
作者: wlishihua 时间: 2021-8-6 12:36
回复 21# 路过
PE下用的,有点特别
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |