此脚本删除文本文件中包含某些字符串的行。 它在处理北欧字母方面存在问题。根据Firefox编码是
西欧
。
$filter = '.\*.alm'
$pattern = "ASE|MBE|MB1|Network interfaces|Handle|default collector|Proficy|Recovered|AlmODBC|Close Digital Point|DataBlock|Channel|Record|TESTBOOL|OK|OPC|Item|_COMMCHECK_|SYSTEM|ADMINISTRATOR|Unknown|ItemID|Field's|Connection|hutdown|acknowledged|Alarming|Suspended|primary|SAC|reloaded|Fix32|1601-01-01"
(Select-String -Path $filter -Pattern $pattern -NotMatch) |
ForEach-Object -Begin {Remove-Item $filter} -Process {$_.line | Out-File -Append -Encoding unicode $_.filename }
Outfile包含编码错误,例如
L G NIV。
我尝试使用Select-String -encoding unicode
,但这只会在输出文件中产生乱码
㨶㜵㤬㠹嬠啌华ㅃ†⁝彄䅔〲弪呇弱噄䅟⁌††††††䭏䭏†††††††††传⁋†
有什么想法如何正确编码吗?
输入示例:
2018-06-13 06:24:59,999 [LUNSC2 ] Fix32.LUNSC2.LUNOP10_COMMCHECK_DV2.F_CV set to 0 by LUNOP10::SYSTEM ADMINISTRATOR
2018-06-13 06:26:01,445 [LUNSC1 ] D_TA204_GT1_DV_AL CFN LARM D_TA204_GT1_Reglerfel
2018-06-13 06:26:09,557 [LUNSC2 ] TRE-12-22-I085 OK OK K-FP60 2 MISSADE SPJÄLLMOTIONERINGAR