0

パス名のテキスト ファイルから、一意のディレクトリに分割されたフォルダー名の頻度を見つけようとしています。したがって、このデータセットを使用して、次の結果が必要です。

  1. データ

    • C:\Project_1\Models\MapShedMaps\randomfilename.txt
    • C:\Project_1\Models\MapShedMaps\randomfilename.txt
    • C:\Project_1\Models\MapShedMaps\randomfilename.txt
    • C:\Project_2\Models\MapShedMaps\randomfilename.txt
    • C:\Project_3\Models\MapShedMaps\randomfilename.txt
    • C:\Project_3\Models\MapShedMaps\randomfilename.txt
    • C:\Project_3\Models\MapShedMaps\randomfilename.txt
  2. 結果

    • プロジェクト_1 = 1
    • プロジェクト_2 = 1
    • プロジェクト_3 = 1
    • モデル = 3
    • MapShedMaps = 3

これに関する私の最初のアイデアは、Get-Content を使用してから ForEach-Object を使用してパスから各単語を分割し、カウントを保持するハッシュ テーブルに格納することです。複製を止めるために、その時点までのcurrnetオブジェクトのパスを格納する配列または別のハッシュテーブルを考えていました...すべてがそこで崩壊します。パスの「親」メンバーを保存するための最良の方法が、それが一意の発生であるかどうかを知るために何であるかはわかりません。これを行う方法についての提案は素晴らしいでしょう。

アップデート:

OK、私はハッシュテーブル $SAVE のようなものを考えており、それぞれの一意の値、パイプからの最後のオブジェクトである配列 $PREVIOUS、および最初からのパイプのキャプチャである配列 $HAVESEEN をカウントします。

SO 文字列が壊れている場合、最初のオブジェクトは C になり、次は Project_1 になり、C は $PREVIOUS と $HAVESEEN に移動します。これを書いてみますが、ハッシュテーブルと配列の間でこれらすべてを渡す方法はわかりません。

4

1 に答える 1

0

手始めに、パスをグループ化して最初の 3 つの結果項目を取得してから、他の値を計算できます。

PS> Get-Content .\file.txt | Group-Object -NoElement

Count Name
----- ----
    3 C:\Project_1\Models\MapShedMaps\randomfilename.txt
    1 C:\Project_2\Models\MapShedMaps\randomfilename.txt
    3 C:\Project_3\Models\MapShedMaps\randomfilename.txt
于 2012-09-28T17:07:40.640 に答える