どこで動かすか分からないようなバッチについてはOSのバージョンごとに処理を分けておく必要があったりします。
そんな時に重宝するのがこちら!!(夜中の通販風に)
この方法はここで見つけました。
周囲にWindows NTなんてあんまりみかけないのでNTの場合の動作テストはしてません。
C:\> type OS_Version.bat
@ECHO OFF
:// Windows NTの場合
VER | FIND "NT" > NUL
IF NOT ERRORLEVEL 1 (
ECHO OSはWindows NTです
GOTO LAST
)
:// Windows 2000の場合
VER | FIND "2000" > NUL
IF NOT ERRORLEVEL 1 (
ECHO OSはWindows 2000です
GOTO LAST
)
:// Windows XPの場合
VER | FIND "XP" > NUL
IF NOT ERRORLEVEL 1 (
ECHO OSはWindows XPです
GOTO LAST
)
:LAST
ECHO 何かキーを押して下さい
PAUSE > NUL
C:\> CALL OS_Version.bat
OSはWindows XPです
何かキーを押して下さい
C:\> これはあちこちで紹介されている方法なのですが、XPだとしてSP2なのかどうなのかを判断する方法って見かけた事がありません。いろいろと試してみた結果、一番お手軽で確実な方法はこんな感じです。
C:\> TYPE SPCONF.bat
@ECHO OFF
NETSH FIREWALL SHOW CONFIG > NUL 2> NUL
:// SP2の場合
IF NOT ERRORLEVEL 1 (
ECHO OSはWindows XP[SP2]です
:// SP2未満の場合
) ELSE (
ECHO OSはWindows XP[SP2未満]です
)
C:\> NETSHのFIREWALLと言うのはPFWの設定確認・変更を行う為のコマンド(オプション?)です。
(詳しくはNETSHのヘルプを読んで下さい)
これはPFWが自動起動されるようになったSP2以降でしか存在しないようです。
ちなみにSP2とそれ以外を判別して何すんの?と思うかもしれませんが、例えばSP2でしか使えないコマンドなどがあるので、事前にSPを判定しておいて実行するコマンドを変えたりなどする場合にはかなり使えます。
SP2からの機能と言えば、netstatの-bオプションとか前述のNETSHのFIREWALLオプションかな?
netstatの-bオプションは結構便利ですよ。
今日のゲーム
ただいまのプレイ時間20.5時間。 道に迷った....。同じところをグルグル迷って30分。