我正在使用創建日誌文件的應用程序。由於軟件本身的錯誤,它不斷產生三個我不感興趣的錯誤。每一行都有一個唯一的標識符,所以我不能只是更換這行,因爲每一行都是不同的。用特定的字符串替換行並保存爲相同的名稱
我有兩個主要的問題:我需要用相同的名稱保存它,而它的工作原理應該是可用的(如果記錄器需要寫東西)。
我無法對原始應用程序進行硬編碼,以防止它編寫日誌的那部分內容。
到目前爲止我試過:
Get-Content log.log | Where-Object {$_-notmatch 'ERROR1' -And $_-notmatch 'ERROR2' -And $_-notmatch 'ERROR3' } `|Set-Content log_stripped.log
^它僅在輸出文件有不同的名稱運作。
Get-Content error.log | foreach-object { Where-Object {$_-notmatch 'ERROR1' -And $_-notmatch 'ERROR2' -And $_-notmatch 'ERROR3' } } | Set-Content error.log
^這個凍結了我的PS會話。
我也試圖讀取該文件的變量:
$logcontent = ${h:error.log}
但我得到的System.OutOfMemoryException。
理想情況下,我需要的是讀取日誌文件,取走我不想要的所有行,然後將其保存爲原始名稱。
想法? (請記住,日誌文件是非必需數據的+/- 900 MB,而使用第一種方法刪除數據時爲45MB)但是我需要它以原始名稱保存文件)
爲什麼你需要用相同的名字保存它?我不認爲這是個好主意。如果文件在寫入時被鎖定,則日誌記錄系統可能無法記錄條目(具體取決於它的複雜程度)。 –