このページではコマンドプロンプトの ver コマンドで OS のバージョンを判定する方法を紹介します。もし OS をバージョンアップする場合、(バッチプログラム内で使用しているなら)修正が必要です。
OS | ver コマンドの結果 (Microsoft Windows [Version X.Y.7601]) |
Windows XP (32bit) | 5.1 (*) |
Windows XP (64bit) | 5.2 |
Windows Server 2003 | 5.2 |
Windows Vista | 6.0 |
Windows Server 2008 | 6.0 |
Windows 7 | 6.1 |
Windows Server 2008 R2 | 6.1 |
Windows 8 | 6.2 |
Windows Server 2012 | 6.2 |
Windows 8.1 | 6.3 |
Windows Server 2012 R2 | 6.3 |
以下は OS のバージョンを判定するサンプルプログラムです。ダウンロードはこちらから GetOSVer.bat.txt (拡張子のtxtを削除してください)
(*)Windows XPの場合は ver コマンドで 追加で XP と出力してくれるので、find コマンドで直接チェック可能です。
◆◆◆◆◆ GetOSVer サンプル ◆◆◆◆◆
@echo off REM **************************************************************** REM * * REM * OS 判定プログラムサンプル * REM * find /I の戻り値 * REM * 一致する文字が有る:%ERRORLEVEL% は 0を返す * REM * 一致する文字が無い:%ERRORLEVEL% は 1を返す * REM * /I 大文字小文字を区別しないオプション * REM * * REM * Copyright (C) tooljp.com 2013 * REM * http://www.tooljp.com/ * REM * * REM **************************************************************** ver | find /I "2000" > nul if %ERRORLEVEL% equ 0 echo "Windows 2000" ver | find /I "XP" > nul if %ERRORLEVEL% equ 0 echo "Windows XP 32bit" ver | find /I "Version 5.2." > nul if %ERRORLEVEL% equ 0 echo "Windows XP 64bit あるいは Windows Server 2003" ver | find /I "Version 6.0." > nul if %ERRORLEVEL% equ 0 echo "Windows Vista あるいは Windows Server 2008" ver | find /I "Version 6.1." > nul if %ERRORLEVEL% equ 0 echo "Windows 7 あるいは Windows Server 2008 R2" ver | find /I "Version 6.2." > nul if %ERRORLEVEL% equ 0 echo "Windows 8 あるいは Windows Server 2012" ver | find /I "Version 6.3." > nul if %ERRORLEVEL% equ 0 echo "Windows 8.1 あるいは Windows Server 2012 R2" |