2017年11月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« コマンドラインからスクリプトとDDEを使ってPDFファイルをページ指定で開く。 | トップページ | URLが分っていて、開かずにダウンロードするには? »

2007年1月28日 (日)

バッチファイルで現在や親のプロセスIDを調べる。

引数を省略すると現プロセスIDを表示します。

GetProcessID.CMD [プロセスID]

@if(0)==(0) ECHO OFF
CScript.exe //NoLogo //E:JScript "%~f0" %*
GOTO :EOF
@end
if(WScript.Arguments.Count()==0) WScript.Echo(GetPPID(GetPID()));
else if(WScript.Arguments.Count()==1) WScript.Echo(GetPPID(WScript.Arguments.Item(0)));
else WScript.Echo("Usage: GetProcessID.CMD [PID]");

function GetPID(){
var wShell=new ActiveXObject("WScript.Shell");
var oExec=wShell.Exec('cmd.exe');
var PID=GetPPID(oExec.ProcessID);
return PID;
}

function GetPPID(PID){
var SWbemObjectSet=GetObject("winmgmts:root/CIMV2").ExecQuery("SELECT * FROM Win32_Process WHERE ProcessID=" + PID);
if(SWbemObjectSet.Count!=1){
  WScript.StdErr.WriteLine("ID " + PID + " のプロセスがありません。");
  WScript.Quit(1);
}
var Processes=new Enumerator(SWbemObjectSet);
for(;!Processes.atEnd();Processes.moveNext()){
  var Process=Processes.item();
  return Process.ParentProcessID;
}
}

« コマンドラインからスクリプトとDDEを使ってPDFファイルをページ指定で開く。 | トップページ | URLが分っていて、開かずにダウンロードするには? »