« コマンドラインからタスクスケジューラのタスクを実行する。 | トップページ | PowerShellの1行バッチでコンソールウィンドウを最小化/最大化/元に戻す。 »

2007年12月24日 (月)

コマンドラインからタスクスケジューラのタスクを終了する。

これをタスクスケジューラに登録すれば、指定時刻に他のタスクを終了することができます。

TaskEnd.CMD [タスク名|番号]

@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0" %*
GOTO :EOF
@end
var Shell=new ActiveXObject("Shell.Application");
var Folder=Shell.NameSpace("::{d6277990-4c6a-11cf-8d87-00aa0060f5bf}");
if(WScript.Arguments.Count()){
  for(var j=0;j<Folder.Items().Count;j++){
    var FolderItem=Folder.Items().Item(j);
    if(FolderItem.Name==WScript.Arguments.Item(0)){
      FolderItem.InvokeVerb("タスクの終了(&E)");
      WScript.Quit();
    }
  }
  if(!isNaN(WScript.Arguments.Item(0))){
    var j=parseInt(WScript.Arguments.Item(0));
    if(0<j&&j<Folder.Items().Count){
      var FolderItem=Folder.Items().Item(j);
      FolderItem.InvokeVerb("タスクの終了(&E)");
      WScript.Quit();
    }
  }
  WScript.Echo(WScript.Arguments.Item(0),"Not Found.");
}else{
  var Cols=new Array();
  Cols[0]="#";
  for(var k=0;k<7;k++){
    Cols[k+1]=Folder.GetDetailsOf(null,k);
  }
  var Rows=new Array();
  Rows.push(Cols.join('\t'));
  for(var j=0;j<Folder.Items().Count;j++){
    var FolderItem=Folder.Items().Item(j);
    Cols[0]=j;
    for(var k=0;k<7;k++){
      Cols[k+1]=Folder.GetDetailsOf(FolderItem,k);
    }
    Rows.push(Cols.join('\t'));
  }
  WScript.Echo(Rows.join('\n'));
}

« コマンドラインからタスクスケジューラのタスクを実行する。 | トップページ | PowerShellの1行バッチでコンソールウィンドウを最小化/最大化/元に戻す。 »