2017-06-20 5 views
0

Windowsシステム上で実行されているすべてのプロセスを、Rubyを使用して追加の依存関係やライブラリをインストールせずにリストしたいとします。私はこれをオンラインで行う方法は見つけられていません。 Rubyからこれを行うきれいな方法はありますか?追加のライブラリなしでRubyを使用して実行中のWindowsプロセスをすべて一覧表示する方法はありますか?

+0

'system(" tasklist ")'についてはどうですか? – orde

+0

または 'get-process'を実行しているときは、powershell ... quick @orde、答えとして入力してください! ;-) – Pavling

+0

私はむしろシェルを生成しません。むしろRuby APIを使用したいと思います。 – AlwaysQuestioning

答えて

1

Kernal::systemメソッドを使用すると、コマンドライン引数を実行できます。たとえば:

代わり
system("tasklist") 

    Image Name      PID Session Name  Session# Mem Usage 
========================= ======== ================ =========== ============ 
System Idle Process    0 Services     0   24 K 
... 
ruby.exe      1336 Console     1  9,100 K 
tasklist.exe     944 Console     1  5,332 K 

- ポイントが出て@Pavlingとして - あなたは(別名バッククォート)[Kernal::`]を使用することができますが、いくつかは、それが読みにくく見つけます。 YMMV。

+0

シェルと直接対話することなしにこれを行う方法はありますか?例えば。いくつかの上位レベルの既に含まれているRubyモジュール? – AlwaysQuestioning

+1

それはKernalメソッドなので、それよりもはるかに高いレベルになるとは思わない。しかし、もしあなたが['backticks'](https://ruby-doc.org/core-2.4.1/Kernel.html#method-i-60)を使うなら、結果を割り当てることができます。サブシェルでcmdを実行する標準出力 "を参照してください。 'Kernal :: system'は、コマンドがゼロ終了ステータスを与えるならば真を返し、非ゼロ終了ステータスなら偽を返します。コマンド実行が失敗するとnilを返します。 – orde

関連する問題