프로젝트 : 계속 추가되는 로그 파일이 있습니다. 이 로그 파일에서 때때로 오류 ("가져올 수 없음"및 고유 ID가 포함 된 오류가 추가됨)가 추가됩니다. 이 오류가 로그 파일에 추가되면 이메일로 알려야합니다.Powershell : 다른 파일에서 여러 줄의 텍스트에 대해 -Exclude를 사용하여 Select-String 검색을 수행하는 방법
프로젝트의 현재 상태 : Select-String을 사용하여 로그 파일을 검사하는 스크립트 (15 분마다 실행되도록 예약 됨)가 있으며이 오류가 발견되면 별도의 텍스트에 추가합니다 파일 이름은 alert- (Get-Date) .txt입니다. PS 스크립트 끝 부분에서 alert.txt 파일을 전자 메일로 보냅니다.
문제점 : 새 로그 파일이 매일 만들어 지므로 스크립트는 해당 파일을 검사 만합니다. 문제는 일단 오류가 발견되면 모든 후속 검사에서 이미 알고있는 오류에 대한 경고를 보냅니다. 이후의 경고에는 NEW 오류 만 포함되기를 원합니다.
1/29/2015 13:38:45 1/29/2015 13:38:45 Sales Order User Import Unable to import OHDR_2785_228038_01292015.txt due to required files missing. Files are being removed from current directory to suspense directory.
내가있는 오류의 고유 ID를 추출하는 스크립트에 수단을 추가했습니다 : 여기에 문제 를 해결하기
현재 시도는 샘플 오류가 로그 파일에 모습입니다 로그 파일. 이 경우 ID는 2785입니다.이 ID와 기타 ID는 다른 텍스트 파일 이름 oldAlerts.txt에 추가됩니다. 그래서 내용은 다음과 같이 : 내 스크립트에 선택 문자열 결과 다음과 같은 행을 exlude 할 수있는 방법을 추가 걸려
2785
1182
1353
1555
. 내가 필터로 oldAlert.txt 파일에 아이디의 사용 방법
Get-ChildItem \txtforerp\Import\Log | Where{$_.LastWriteTime -gt (Get-Date)-$ts -AND $_.LastWriteTime -lt (Get-Date)} | select-string -Pattern "Unable to import" | Out-File $path\"$alert.txt"
는 새로운 오류가 경고에 추가하기 위해 : 여기에 지금까지 나의 선택 - 문자열입니다. 광산이 모범 사례가 아닌 경우 다른 접근법을 사용할 수 있습니다.
이것은 작동합니다. 저를 정규 표현식에 소개해 주신 것에 감사드립니다. 지금까지 나는 그것에 대해 들어 본 적이 없었다. 귀하의 게시물에 링크 된 자습서가 매우 흥미 롭습니다. –