こんばんは。
nanana-blog管理人のナナナです。
ブログを訪問し記事を読んでいただきありがとうございます。
仕事で使用しているPCをWindows7 32bitからWindows10 64bitに変更したところ
Windows7で使っていたバッチファイルが動かなくなりました。
Windowsでは同じアプリケーションでも32bit版と64bit版があるのでバッチファイルも
bitが違うことが原因でバッチファイルが動かなくなるのではないかと思い、
調べてみました。
Windows10 64bitのPCでバッチファイルを実行するとエラーになる
バッチファイルの内容は、Oracleデータベースからデータを抽出して結果を
メッセージボックスで表示させるというシンプルな処理です。
ファイルを実行すると「[Microsoft][ODBC Driver Manager]データソース名および
指定された既定のドライバーが見つかりません。」というエラーメッセージが
表示されて、処理が止まってしまいました。
エラーの原因はインストールしたOfficeだった
私が使用しているWindows10のPCにはMicrosoft Office Professional 2019の32bit版が
インストールされています。プレインストール版のためPC購入時には既に
インストールされていました。
そしてOracle接続時に使用しているODBCドライバーもOfficeと同じ32bit版が既に
インストールされていていたのです。
パソコンは64bitなので64bit版のODBCを使ってデータベースに接続しようとしますが
インストールされているODBCドライバーは32bit版のため
「[Microsoft][ODBC Driver Manager]データソース名および指定された既定のドライバー
が見つかりません。」というエラーメッセージが表示されていたのです。
バッチファイルをタスクから実行することで実行できた
32bit版のODBCドライバーしかインストールされていないのであれば、32bit版を
使うように指定する必要があり、それはタスクスケジューラで指定することが
できます。
タスクスケジューラを起動して基本タスクの作成をクリックします。

タスクの名前を入力して次へボタンをクリックします。

トリガーはバッチを起動する日時や曜日を指定します。今回は毎朝11時に
起動させていたので毎日11時に起動するように設定します。
操作ではプログラムの開始を選択して、次へボタンをクリックします。

一般的には「プログラム/スクリプト」に実行したいバッチファイルのパスを
入力しますが「C:\Windows\SysWOW64\wscript.exe」と入力します。
引数の追加に実行したいバッチファイルのパスを入力します。

次へボタンをクリックするとサマリーが表示されて、完了ボタンをクリックすれば
タスクの登録が完了です。
WOW64フォルダのWscript.exeを実行することで32bit用のODBCドライバーを
使うことができるので、エラーが発生しなくなりました。
最後に
いかがだったでしょうか。
今まで32bitパソコンしか使ってこなかったので、意識をしていませんでした。
他にも動かないアプリケーションやファイルなどがありそうなので、解決策を見つけて
ブログに書いていきます。
そういえば、私が年収100万円アップした時にお世話になったところをシェアしますね★

私が以前転職活動で利用していたJACリクルートメントは業界3位の人材紹介会社です。
3,000社を超える外資系企業から依頼されている求人情報のほか、求職者の転職意欲に合わせた活動方法も紹介しています。
個別求人へのエントリー依頼や無料転職コンサルティングも行っているので、外資系企業への転職を考えている方にオススメです。

お金の教養講座は普段なかなか聞くことができないお金のことを短期間で効率的に学べる入門講座です。
老後の不安をなくしたい・収入アップしたい・貯蓄体質になりたい・投資でお金を増やしたいなどお金関して不安や希望がある方にピッタリの講座です。
今なら自宅で受講可能なWeb受講が無料なので、気になる方はチェックしてみてください。