どこで動かすか分からないようなバッチについては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分。