あるプロジェクトのためWindowsでcwrsyncを使おうと言うことで、rsync.exeを叩くスクリプトをバッチファイルで書いていたのだが、どうもx64 OS上からだと正しく起動しない。 おそらくcygwinに入ってるDLL類が32bit限定で、バッチファイルを普通に起動してしまうとx64なコマンドプロンプトから呼ばれるためだろう。うーむ、WOW64も困ったものだな。 ということで、かなり需要は少なそうだが、その解決法。 方針 方針としては、"x86として起動し直す"ということをやればよいので、実は割と簡単な手法。 問題は「バッチファイルの中から自分のコマンドプロンプトがx64のcmd.exeなのか、x86のcmd.exeなのかを知る方法」である。 で、ちょいとググったらヒットしたので、簡単にかけた。ファイルの先頭にこう書く。 @echo off if "%PROCESSOR_ARCH
![x64版Windows上でバッチファイルをx86起動する方法](https://cdn-ak-scissors.b.st-hatena.com/image/square/66e9eed88190d229a0ee134c5fcab24cf40d99c7/height=288;version=1;width=512/https%3A%2F%2Fmo.kerosoft.com%2Fpub-dist%2Fdefault-logo.png)