2010/02/09(Tue)x64版Windows上でバッチファイルをx86起動する方法
2010/02/09 1:19
おそらくcygwinに入ってるDLL類が32bit限定で、バッチファイルを普通に起動してしまうとx64なコマンドプロンプトから呼ばれるためだろう。うーむ、WOW64も困ったものだな。
ということで、かなり需要は少なそうだが、その解決法。
方針
方針としては、"x86として起動し直す"ということをやればよいので、実は割と簡単な手法。問題は「バッチファイルの中から自分のコマンドプロンプトがx64のcmd.exeなのか、x86のcmd.exeなのかを知る方法」である。
で、ちょいとググったらヒットしたので、簡単にかけた。ファイルの先頭にこう書く。
@echo off if "%PROCESSOR_ARCHITECTURE%" NEQ "x86" ( C:\Windows\SysWOW64\cmd.exe /C %0 exit )x64なシステムで普通に起動すると%PROCESSOR_ARCHITECTURE%は"AMD64"となり、x86アプリからcmd.exeを読んでやった場合や、SysWOW64内のcmd.exeから呼び出した場合は、"x86"となるので問題ない。
うーむ。使う場面が限られそうだが…、いちお。