2016-06-29 10 views
0

私はバッファとして次の文字列を持っています(ランダムな列値を持つランダムな行です)。Javascript - どのように一致が見つかったPIDを見つけるのですか?

どのようにしてROWが利用可能であるかを「ワーニング」で検索するには、その行からPIDをどのようにフィルタリングするのですか?

var exec = require('child_process').exec; 
exec('TASKLIST /v /FI "IMAGENAME eq python*"', function(a,b,c) { 
    console.log(b); 
    // Which PID contain the word : "Warnning" ? can you list them chronologically? 


}); 

出力:execのフィルタでは

Image Name      PID Session Name  Session# Mem Usage Status   User Name            CPU Time Window Title 
========================= ======== ================ =========== ============ =============== ================================================== ============ ===================================================== 
python.exe     9999 RDP-Tcp#10     1  19?556 K Running   sun\tpt             0:00:15 Warnning of windows 
python.exe     3861 RDP-Tcp#10     1  19?556 K Running   sun\tpt             0:00:15 Cancle this crap 
python.exe     8080 RDP-Tcp#10     1  19?556 K Running   sun\tpt             0:00:15 Warnning of windows 
+1

あなたは 'VARライン= b.split( '\ r \ n' を)使って行末で文字列を分割でき、。多分'以上のvar endOfLineは=( 'OS​​')を必要と '使用するEOL。 var lines = b.split(endOfLine); '次にforループが行に含まれているかどうかを調べる警告' if(lines [i] .indexOf( 'Warning')> -1)console.log(lines [i]); 'Now pidを得るには正規表現が必要かもしれませんが、私はそれがうまくいかない:( – Molda

答えて

1

は、実行中の代わりに、必要なフィルタを提供しています。

exec('TASKLIST /v /fi "STATUS eq Running" /FI "IMAGENAME eq Shoretel*" /FO csv /NH', 
    function(a,b,c) { 

     // function to get the pids 
     function getPID(csv){ 
      var pids = []; 
      var lines=csv.split("\n"); 
      for(var i=0;i<lines.length - 1;i++){ 
       var headers=lines[i].split('",'); 
       pids.push(headers[1].split('"')[1]); 
      } 
      return pids; 
     } 

     // to get the pids 
     getPID(b); 
}); 
関連する問題