0

ここにいる Powershell の初心者は、先月それをいじり始めたばかりです。私はそれを使用する方法を見つけようとしてきましたが、現在、一部の UNIX サーバーから情報を取得しようとしていますが、データを解析して必要なものを取得するのに苦労しています。基本的に、私はsshコマンドを実行してサーバー上のclosed_waitsの#をプルし、サーバー名をコンマで区切ったファイルに出力しています。したがって、私の出力は次のようになります。

2,<server1>
3,<server2>
3,<server3>

など...リストには約70のサーバーがあります。最初の列 (#) を見て、特定の数 (たとえば 250) を超えている列を調べて、それをサーバー名と共に出力できるようにしたいと考えています。行を分割して # だけで検索することはできましたが、# を引き出さずに検索する方法がわからないため、サーバー名を一緒に出力できます。

私の最後の試みは、まだうまくいきません。

get-content "cresultsf.txt" | %{$close = $_.split(","} | where-object {$_.$close[0] -gt 250}

先月 PS スクリプティングを取り上げたので、私はこれに非常に慣れていません。今日、これをまとめようとして 100 の記事を読んだので、何か助けていただければ幸いです。ありがとう!

4

2 に答える 2

1

V3 が必要:

get-content "cresultsf.txt" | %{
 [PSCustomObject]@{
               $split = $_.split(',')
               Close = [int]$split[0]
               Server = $split[1]
               }
 } | where { $_.close -gt 250 }

Powershell はすべてオブジェクトに関するものであるため、オブジェクトを作成してから操作する方が通常は簡単です。[PSCustomObject] 型アクセラレータを使用すると、ハッシュ テーブルから直接オブジェクトを作成できます。ファイルからテキスト データを読み取るため、値はすべて [string] になります。Close プロパティは、比較を行うときに予期しない結果を防ぐために、[int] の明示的なケースです。

于 2013-11-15T03:35:47.943 に答える