2017-11-03 1 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])" 
} 
처럼 뭔가 해시 테이블을 처리 할 수있는 해시 테이블에 삽입
관련 문제