- - PR -
コマンドバッチはタスクスケジューラ起動すると最小化できない?
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2001-12-19 13:19
Windows2000AdvancedServer SP2 を使用しています。
簡単なコマンドバッチを作成し、タスクスケジューラで定期的に実行させているのですが、タスクでの実行時に必ずコマンドラインのウインドウが開いてしまいます。 処理終了時にはウインドウが閉じられますので良いといえば良いのですが、コンソールで作業中に突然ウインドウが開いてしまい、同時にアクティブになってしまう為問題があります。 バッチのショートカットを作成し、実行時の大きさを最小化に設定しても、タスクからの起動時には、コマンドラインのウインドウが開いてしまいました。 ATコマンドを使用した場合、/intaractiveを指定しなければバックグラウンドで実行されるようですが、タスクスケジューラ上でバックグラウンド(または最小化)での実行をさせることは可能でしょうか。ATでは分単位での繰り返し実行は難しい為、タスクで指定したいのですが。 リソキのsoonを使用し、次回のATコマンドを作るとよいとかは耳にしたのですがけど、私が全てのバッチの設定をするわけでもありませんので・・・。 御サイトのWindows 2000 コマンドライン徹底活用『第2回 コマンド プロンプト入門(その2)4.コマンド プロンプトのプロパティ』によると、『たとえば、バッチファイルなどを使って処理を行う場合、ウィンドウはアイコン化していたほうがよい場合もあるだろうし、・・・』といった記述がありますが、指定方法については特に記述がありませんでした。 コマンドバッチをタスクから実行する場合、上記の現象は仕方がないことなのでしょうか。 何か良い方法をご存知の方いらっしゃいましたら、お教えください。 |
|
投稿日時: 2001-12-20 12:29
TANTOさん、こんにちは。
以下の件、Windows 2000では再現しますが、Windows XPで試したところ、問題なく最小化された状態で起動されました。 実験は、c:\tmp\test.bat をつくり、 このショートカットをc:\tmp\test.bat.lnk として作成し、このショートカットのプロパティの[実行時の大きさ]を[最小化]にして実行しました。 両者で何が違うのか調べてみると、Windows 2000のタスクスケジューラでは、バッチファイルのショートカットを実行するプログラムとして指定すると、ショートカットファイル(test.bat.lnk)ではなく、その実体の(test.bat)が自動的に指定されるようです(XPでは正しくlnkファイル側に設定されます)。このためWindows 2000では、ショートカットの指定が有効に働かないようです。 試しにマニュアルで、指定のプログラムをtest.bat.lnkと指定しなおすと、Windows 2000のタスクスケジューラでも最小化されて起動されるようになりました。 お試しください。 |
|
投稿日時: 2001-12-20 15:01
yoshiさん、こんにちは。
早速、試してみましたところ見事最小化で実行されました。。。 どうもありがとうございました。 ところで、気をつけるべき点がひとつありました。 Windowsでショートカットを作成するとデフォルトで 『〜 へのショートカット』 というファイル名となりますが、このままではスペースが含まれるため、タスクスケジューラでの設定では""(ダブルクォーテーション)で囲む必要があります。 うっかり忘れてしまうと正しく動きません。 ちゃんと""で囲むか、yoshiさんがされたように『test.bat.lnk』(エクスプローラ上では『test.bat』)とするのが良いみたいです。 ちなみにWindows98ではバッチファイルのプロパティで最小化の指定をすれば、最小化で実行されるんですね・・・。 大変勉強になりました。 これって、TIPS にしてもよさそうなテクニックですね。 |
|
投稿日時: 2001-12-20 20:42
TANTOさん、うまくいってよかったですね。
ご指摘のとおり、ちょっと小ネタですが、TIPSネタになると思い、記事準備リストには追加しました。 今後ともよろしくお願いします。 P.S. これまではハンドル名を「yoshi」としてきましたが、公明正大に本名に変更しました。お知らせまで。 |
1
