2017-11-03 7 views
-1

データをテキストファイルに出力するスクリプトがあります。今私はプロジェクトと一致し、カウントを取得する行の数を得る方法が必要です。私はテキストファイルを動的にループして共通の一致を得る

$ProjectMatches = Select-String -InputObject $FileContent -Pattern "PROJECT ID FOAH834" -AllMatches 

を行うことにより、一つの値のカウントを取得する方法を知っているしかし、私は、テキストファイルをループする必要があり、各PROJECT ID SOMEPROJECTNUMBERのカウントを取得し、それぞれのカウントを取得し、CSVファイルにそれらの結果をエクスポートします。私の目標は、各プロジェクトにどれだけの時間を費やしたかを示すことです。各エントリは15分です。

11/2/2017 8:07:34 PM 
This 15 minutes is dedicated to PROJECT ID FOAH834 
11/2/2017 8:07:36 PM 
This 15 minutes is dedicated to PROJECT ID FOAH834 
11/2/2017 8:07:38 PM 
This 15 minutes is dedicated to PROJECT ID FOAH841 
11/2/2017 8:10:15 PM 
This 15 minutes is dedicated to PROJECT ID FOAH18 
11/2/2017 8:10:17 PM 
This 15 minutes is dedicated to PROJECT ID FOAH690 
11/2/2017 8:10:21 PM 
This 15 minutes is dedicated to PROJECT ID PRJ0036909 
11/2/2017 8:19:32 PM 
This 15 minutes is dedicated to PROJECT ID FOAH18 
11/2/2017 8:21:02 PM 

答えて

1

はおそらく、すべてのプロジェクトのコードを取得するために

$matches = [regex]:matches($FileContent,"PROJECT ID .*<br/>") 

ように私が何かを使用するすべての値

をハードコーディングいうし、その後、文字列操作をいくつかの正規表現のマッチングを行いたいです。そして、それ以上のループは、いくつかの文字列操作を行うと、

$hashtable = @{} 
foreach ($entry in $matches){ 
    $entry = $entry.replace(...) 
    $projectcode = $entry.split(....) 
    $hashtable[$projectcode] += 1 
} 

次にあなたが

foreach($entry in $hashtable.keys){ 
    write-output "$entry: $($hashtable[$entry])" 
} 
のようなものを持つハッシュテーブルを処理することができ、ハッシュテーブルに挿入します
関連する問題