Это хорошо работает в командной строке. Попытка запустить его в PowerShell без удачи, синтаксис, очевидно, отличается.
for %%f in (*.hej) do (
findstr /V "Channel Record TESTBOOL OK OPC Item _COMMCHECK_ SYSTEM ADMINISTRATOR Unknown ItemID Field's Connection hutdown acknowledged Alarming Suspended primary SAC reloaded Fix32" %%f > %%f.txt
del %%f
ren %%f.txt %%f
)
Я перебираю все файлы с hej-окончанием и удаляю любую строку, содержащую любое из слов после findstr /V
.
Edit:
Код работает отдельно от кодировки и выглядит следующим образом:
$encoding = [System.Text.Encoding]::GetEncoding(1252)
$filter = 'M:\ALM\*.alm'
$pattern = "Channel|Record|TESTBOOL|OK|OPC|Item|_COMMCHECK_|SYSTEM|ADMINISTRATOR|Unknown|ItemID|Field's|Connection|hutdown|acknowledged|Alarming|Suspended|primary|SAC|reloaded|Fix32"
(Select-String -encoding $encoding -Path $filter -Pattern $pattern -NotMatch) |
ForEach-Object -Begin {Remove-Item $filter} -Process {$_.line | Out-File -Append -encoding $encoding $_.filename }
Были проблемы с кодировкой, но он переключился с Powershell 5 на Powershell Core, там он работал так: $encoding = [System.Text.Encoding]::GetEncoding(1252)
.
Последнее добавление - у меня нет прав на запись в сетевую папку, поэтому я бы хотел, чтобы «очищенные» файлы сохранялись в локальной папке. Пытались лишить $_.filename
своего пути без успеха, используя
| Out-File -Append -encoding $encoding c:\temp\(Get-Item '$_.filename').Basename }
Приветствия
Исходный образец данных:
2018-05-19 00:22:07,166 [LUNSC1 ] Fix32.LUNSC1.LUNOP9_COMMCHECK_DV2.F_CV set to 0 by LUNOP9::SYSTEM ADMINISTRATOR
2018-05-19 00:23:35,226 [LUNSC2 ] Fix32.LUNSC2.LUNOP10_COMMCHECK_DV2.F_CV set to 0 by LUNOP10::SYSTEM ADMINISTRATOR
2018-05-19 00:24:07,169 [LUNSC1 ] Fix32.LUNSC1.LUNOP9_COMMCHECK_DV2.F_CV set to 0 by LUNOP9::SYSTEM ADMINISTRATOR
2018-05-19 00:25:02,046 [LUNSC1 ] Fix32.LUNSC1.LUNOP9_COMMCHECK_DV.F_CV set to 0 by LUNSC1
2018-05-19 00:25:07,975 [LUNSC1 ] Fix32.LUNSC1.LUNOP9_COMMCHECK_DV2.F_CV set to 1 by LUNOP9::SYSTEM ADMINISTRATOR
2018-05-19 00:25:35,232 [LUNSC2 ] Fix32.LUNSC2.LUNOP10_COMMCHECK_DV2.F_CV set to 0 by LUNOP10::SYSTEM ADMINISTRATOR
2018-05-19 00:26:00,551 [LUNSC1 ] D_TA204_GT1_DV_AL CFN LARM D_TA204_GT1_Reglerfel
2018-05-19 00:27:07,165 [LUNSC1 ] Fix32.LUNSC1.LUNOP9_COMMCHECK_DV2.F_CV set to 1 by LUNOP9::SYSTEM ADMINISTRATOR
2018-05-19 00:27:35,235 [LUNSC2 ] Fix32.LUNSC2.LUNOP10_COMMCHECK_DV2.F_CV set to 0 by LUNOP10::SYSTEM ADMINISTRATOR
2018-05-19 00:28:01,049 [LUNSC1 ] D_TA204_GT41_DV_AL CFN LARM D_TA204_GT41_Reglerfel
2018-05-19 00:28:01,049 [LUNSC1 ] D_TA204_GT31_DV_AL CFN LARM D_TA204_GT31_Reglerfel
2018-05-19 00:28:01,049 [LUNSC1 ] D_TA204_GT21_DV_AL CFN LARM D_TA204_GT21_Reglerfel