|
本帖最后由 dos时代菜鸟 于 2016-5-29 23:12 编辑
可以考虑 用 逆向 确定 最后一个单词的方法 明确版本号。
也可以用 下面的 vbs 代码,将下面代码保存为一个 vbs ,在 cmd下调用之,就可以了。
- Set FSO=CreateObject("Scripting.FileSystemObject")
- v=Split(FSO.GetFileVersion(fso.GetSpecialFolder(0)&"\explorer.exe"),".",3)
- VX="Unknow"
- Select Case CCur(v(0)&"."&v(1))
- Case 5.1 vx="WINXP"
- Case 6.1 vx="WIN7"
- Case 6.2 vx="WIN8"
- Case 6.3 vx="WIN8.1"
- End Select
- If v(0)="10" Then vx="WIN10"
- st="X86"
- If fso.folderExists(fso.GetSpecialFolder(0)&"\SysWOW64") Then st="X64"
- wscript.echo VX&"."&st
复制代码
下面这个 vbs 更直接:
- Set wmi=GetObject("winmgmts:\\.")
- Set operation=wmi.instancesof("win32_Operatingsystem")
- For Each sys In operation
- WScript.Echo "系统名称:"&sys.caption
- Wscript.Echo "系统版本:"&sys.Version
- WScript.Echo "系统类型:"&sys.OSArchitecture
- Next
复制代码
下面这个 是 cmd 版的
- @echo off
- SETLOCAL ENABLEDELAYEDEXPANSION
- for /f "delims=, skip=2 tokens=2" %%c in ('wmic os get Version^,WindowsDirectory /format:csv') do (
- for /f "delims=. tokens=1,2,3*" %%f in ("%%c") do (
- if %%f.%%g equ 5.1 set "verx=WINXP"
- if %%f.%%g equ 6.1 set "verx=WIN7"
- if %%f.%%g equ 6.2 set "verx=WIN8"
- if %%f.%%g equ 6.3 set "verx=WIN8.1"
- if %%f equ 10 set "verx=WIN10"
- )
- )
- for /f "delims=, skip=2 tokens=2" %%c in ('wmic os get OSArchitecture^,WindowsDirectory /format:csv') do (
- set verx=!verx!.%%c
- )
- echo !verx!
- pause
复制代码 |
|