(確認)
メモ帳でコマンドを書き,拡張子を「.bat」にするとバッチファイルになる。
バッチファイルで「C:\Program Files」下のプログラムを動かそうとすると,スペースが入ってしまう関係で,そのままではうまくいかない。
パスを「"~"」で囲うと,この問題は解決できる。
例)
"C:\Program Files\Folder\program" -xx
バッチファイルを定期的に実行するには,タスクスケジューラを用いる。
タスクスケジューラの右の「操作」ペインの中の,「基本タスクの作成」をクリックし,後はウィザードに沿って作っていく。
1時間毎に実行したい場合は,ウィザード中は「1回限り」を選択した後,そのタスクの[プロパティ]-[トリガー]タブの,「編集」をクリックし,詳細設定の「繰り返し間隔」と「継続時間」で細かい設定を行う。
バッチファイルの画面を表示させないためには,VBScriptを用いる。VBScriptファイルの作り方は,テキストファイルの拡張子を「.vbs」にすれば良い。
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c [xxx.bat]", vbhide
一行目はオブジェクトの作成(というらしい),
二行目がオブジェクトの利用?(run関数を使ってバッチファイル[xxx.bat]を実行させ,かつ,画面を隠す(vhide)),と言えばいいのだろうか。
タスクスケジューラで定期実行させるファイルを,バッチファイルから,この.vbsファイルに変更すればよいのである。
バッチファイル名はフルパスで指定しているが,「同一フォルダの」を指定する環境変数とか,いろいろあるらしい。
そして,ここで書き込むフルパスに空白がある場合,動作しないっぽいのである。
結局,「Program Files」フォルダ内のプログラムを動かすバッチファイルは,スペースのないパスのフォルダに置いて,そのバッチファイルと同じフォルダに前記.vbsファイルを作成するという方法で解決している。
本当は,プログラムと同じフォルダにバッチファイルと.vbsファイルを置きたかったのだが。
きちんと勉強した方がよいのだろうが,せずとも他の方法で解決できるなら,とりあえず姑息的対処でなんとかするのである。ただ,姑息的対処なので応用が利かないから,きちんと書いておかないと後で困ってしまうのである。