web-dev-qa-db-ja.com

バッチファイルを呼び出すときにタスクスケジューラにcmdシェルを表示させる方法は?

Windows 2008 R2を使用していて、タスクスケジューラでアプリケーションをスケジュールしようとしています。適切な設定でバッチを作成しました。

私が抱えている問題は次のとおりです。Cmdシェルウィンドウ(batの実行中)を表示する必要がありますが、タスクスケジューラがバックグラウンドでアプリケーションを起動し、Cmdウィンドウが表示されません。

タスクスケジューラとは異なることを試しました。

- cmd /c start ...MyProgram.bat does not work.
- I tried calling my batch directly does not work.
- I also tried a piece of vbs script with winScriptHost.run does not work either.

私は何を取りこぼしたか?どうすればこれを解決できますか?

4
Alain

タスクスケジューラのGUIでインタラクティブタスクを実行する方法はないと思います。しかし、ATコマンドは表示されます。テクノネットで this の記事を見つけました(とりわけ)ATコマンド。

2
pipTheGeek

スケジュールされたタスクを「ユーザーのログオン時にのみ実行する」に設定し、そのユーザーとしてログインしている場合、タスクが実行されるとコマンドウィンドウが表示されます。

「ユーザーがログオンしているかどうかにかかわらず実行する」に設定すると、コマンドウィンドウが非表示になります。これはあなたが選択したオプションだと思います。このオプションを使用してコマンドウィンドウを表示する方法はないと思います。

したがって、「実行」オプションを変更する必要があります。

12
euphonek

あなたの問題に対するより良い解決策は、エラーと出力をログファイルにリダイレクトし、そのログファイルをテールすることです。

3
mfinni

あなたの投稿と要件を読んだ後、私が一致する私の要件も見つけました。私は次の手順を実行し、バッチスクリプトをデスクトップ(フォアグラウンド)で実行することができました。

  • "Action"-> "Start a program"の下
  • "Program/script"-"C:\ windows\system32\cmd.exe/C startD:\(script dirのパス)\ batch_script.bat "
  • "General"->の下"ユーザーがログオンしているときのみ実行"
  • 私の場合、管理者ユーザーIDを使用し、ログインセッションを維持できます"locked"、あなたまたは他のユーザーが異なるIDでWindows 2008 r2にログインしているかどうか、あなたのシナリオはわかりません。この方法で、Windows 2008 R2サーバーでWindowsスケジューラを使用して目的の出力を取得しています。
1
Ashish Sarraf