3

我有一个包含此代码的(测试)批处理文件

如果存在 "C:\Users\All Users\ntuser.dat" 转到 Win 7 如果存在 "C:\Documents and Settings\All Users\ntuser.dat" 转到 Win XP

:Win 7 将在此处写入将在 win7 上运行的参数

C:\w7\test.txt

:赢XP

将在此处写入将在 winxp 上运行的参数

与其他 os + os 架构相同

它正在工作,但我需要添加更多操作系统识别选项。我需要该批处理文件来识别操作系统版本、体系结构(仅限 Windows 2003R2 x64、Windows Xp x32 和 x64、Windows Vista x32 和 x64、Windows 7 x32 和 x64、Windows 8 x32 和 x64)

非常感谢您的高级!

4

2 回答 2

5

Aacini在 SO 上有一个不错的解决方案,但现在找不到并从我的“库”中发布:

@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%
goto :eof


::Goto right version
goto %Version: =_%


:Windows_8
echo Windows 8

:Windows_7
echo Windows 7

© Aacini at dostips

于 2013-06-27T18:22:05.063 回答
3

只需WMIC从命令行或批处理文件中使用。更容易,更短,你可以解析它。

wmic OS get OSArchitecture,caption
于 2013-06-27T18:26:24.203 回答