■WindowsXPHomeではtaskkillではなく、PowerShellで「Stop-Process」しよう。 以下の続編。コマンドプロンプトからpowershellを呼び出して使う。 WindowsXPHomeではtasklistではなく、PowerShellで「Get-Process」しよう。 http://labunix.hateblo.jp/entry/20121107/1352292359 ■taskkillはまたまた見つからない。 > taskkill /? 'taskkill' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 ■メモ帳を起動、停止テストのターゲットとする。 > notepad > powershell get-process notepad Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 73 4 2492 7760 73 2.84 2400 notepad 73 4 2516 5924 72 0.31 2412 notepad ■名前でkillすると両方とも閉じてしまう。 既に起動しているnotepadは止めたくない。 > powershell stop-process -id 2412 > powershell get-process notepad Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 74 4 2512 8768 73 4.77 2400 notepad ■名前で両方ともkillしたい。 ※プロセスが見つからないとエラーを吐く。 その仕様はどうかと思うが、見なかったことにするw。 > powershell stop-process -Name notepad > powershell get-process notepad Get-Process : 名前 "notepad" のプロセスが見つかりません。プロセス名を確認し、コ マンドレットを再度呼び出してください。 発生場所 行:1 文字:12 + get-process <<<< notepad + CategoryInfo : ObjectNotFound: (notepad:String) [Get-Process]、P rocessCommandException + FullyQualifiedErrorId : NoProcessFoundForGivenName,Microsoft.PowerShell. Commands.GetProcessCommand ■Gowに付属するgrep > grep --version grep (GNU grep) 2.4.2 Copyright 1988, 1992-1999, 2000 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. > grep ssh-rsa .\putty.log | grep "00000150" 00000150 00 01 0f 00 00 00 07 73 73 68 2d 72 73 61 00 00 .......ssh-rsa.. ■powershellのSelect-Stringsをpsgrepとしてエイリアス。 Gowと比べて若干遅いが、まあ仕方なし。。。 > powershell PS> Set-Alias psgrep Select-String PS> type .\putty.log | psgrep ssh-rsa | psgrep "00000150" 00000150 00 01 0f 00 00 00 07 73 73 68 2d 72 73 61 00 00 .......ssh-rsa.. PS> exit ■プロセスの取得には期待した結果が得られない。 > powershell PS> Set-Alias psgrep Select-String PS> get-process | psgrep notepad System.Diagnostics.Process (notepad) ■Gowならば得られる。 > get-process | grep notepad 74 4 2724 8816 73 6.84 1480 notepad ■ところで、powershellのfindはコマンドプロンプト上とは動作が異なる。 PS> get-process | find "notepad" FIND: パラメータの書式が違います PS> exit ■そういう時もpowershellを呼び出し形式にすると上手く行く。 パイプの先はコマンドプロンプトのfind。 > powershell get-process | find "notepad" 74 4 2536 9484 73 9.92 1480 notepad