バッチファイルでOSが32か64か区別する

環境変数PROGRAMFILES(X86)があるかどうかで区別した。環境変数なので勝手に設定されることもあるがスルー。
PROCESSOR_ARCHITECTUREはプロセスが32か64かで値がことなるのでOSの判定には使えないと思われる。

バッチのプロセスが32か64かを知りたい場合は以下

参考URL
http://stackoverflow.com/questions/12322308/batch-file-to-check-64bit-or-32bit-os

MSコンパイラのバージョンと_MSC_VERマクロ

clを実行してVersionを見ることで_MSC_VERがどう展開されるか確認できる。

VC6の場合は_MSC_VER=1200になる。
VC2005の場合は1400
VC2008の場合は1500
VC2010の場合は1600