我需要一个可以显示正在运行的操作系统的批处理脚本,因为我正在制作一个程序,它的作用受到它运行的操作系统OS的影响很大。我需要它来测试的是:
Windows 8 32bit
Windows 8 64bit
Windows 7 32bit
Windows 7 64bit
Windows vista 32bit
Windows vista 64bit
Windows xp
Other
有谁知道我能做什么,因为我不知道从哪里开始?
答案 0 :(得分:3)
在cmd提示符下键入以下命令
ver
这将列出微软Windows版本。您只需相应地将每个版本映射到您的功能。
如果您需要更多详细信息,systeminfo命令会输出一堆信息。
您可能想要过滤它。例如,获取版本+ Service Pack信息+处理器体系结构:
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"System Type"
在我的机器上输出以下内容:
OS Name: Microsoft Windows 7 Enterprise
OS Version: 6.1.7601 Service Pack 1 Build 7601
System Type: x64-based PC
答案 1 :(得分:3)
从"Determining OS version via Scripting"复制:
@echo off
setlocal EnableDelayedExpansion
::Identify OS
for /F "delims=" %%a in ('ver') do set ver=%%a
set Version=
for %%a in (95=95 98=98 ME=ME NT=NT 2000=2000 5.1.=XP 5.2.=2003 6.0.=Vista 6.1.=7 6.2.=8) do (
if "!Version!" equ "this" (
set Version=Windows %%a
) else if "!ver: %%a=!" neq "%ver%" (
set Version=this
)
)
::Identify bit
if exist "%SYSTEMDRIVE%\Program Files (x86)" (
set Type=64 bit
) else (
set Type=32 bit
)
::Display result
echo %Version% %Type%
echo/
pause
答案 2 :(得分:2)
使用ver
命令,然后使用“|”
例如
ver|find "6.1" >nul && echo/Windows XP
答案 3 :(得分:2)
检测Windows版本,创建变量 OS_VERSION :
@echo off
@break off
@title Detect Windows Version - Create Variable = OS_VERSION
@color 0a
@cls
ver | findstr /i "5\.0\.">nul
if %ErrorLevel% EQU 0 set "OS_VERSION=2000"
ver | findstr /i "5\.1\.">nul
if %ErrorLevel% EQU 0 set "OS_VERSION=XP"
ver | findstr /i "5\.2\.">nul
if %ErrorLevel% EQU 0 set "OS_VERSION=2003"
ver | findstr /i "6\.0\.">nul
if %ErrorLevel% EQU 0 set "OS_VERSION=Vista"
ver | findstr /i "6\.1\.">nul
if %ErrorLevel% EQU 0 set "OS_VERSION=7"
ver | findstr /i "6\.2\.">nul
if %ErrorLevel% EQU 0 set "OS_VERSION=8"
echo %OS_VERSION%
pause
exit
检测Windows BITS,创建变量 OS_BITS :
@echo off
@break off
@title Detect Windows BITS - Create Variable = OS_BITS
@color 0a
@cls
if "%ProgramW6432%" EQU "%ProgramFiles%" if "%CommonProgramW6432%" EQU "%CommonProgramFiles%" if defined ProgramFiles(x86) if exist "%SystemRoot%\SysWOW64\" (
set "OS_BITS=64"
) else (
set "OS_BITS=32"
)
echo %OS_BITS%
pause
exit
PS:在Windows XP x86,Windows 7 x86,Windows 7 x64,Windows 8 x64,Windows 2008 x64中测试
答案 4 :(得分:1)
与ver相比,WMIC是更好的方法,因为它包含了体系结构要求。
wmic os get caption, OSArchitecture, version
结果
Caption OSArchitecture Version
Microsoft Windows 7 Ultimate 64-bit 6.1.7600
编辑:我看到75inch在我发帖时更新了他的systeminfo命令。无论哪种方式都可行。