BATCH SCRIPT: Удалить строки, которые содержат определенные символы в файле - PullRequest
0 голосов
/ 25 сентября 2018

Я пытаюсь удалить все в файле все строки, которые содержат некоторые значения.Мой файл выглядит следующим образом:

"BLOT"  "GL.AC" "00350" "AMG"   "10502" "     " "                    "  "     " "     " "     " "     " "
"ACOD"  "BC.FF" "00350" "AMG"   "10502" "     " "                    "  "     " "     " "     " "     " "
"VARC"  "DF.RR" "00350" "AMG"   "10502" "     " "                    "  "     " "     " "     " "     " "

Идея состоит в том, чтобы удалить все строки, содержащие строки "BLOT" и "VARC"

Ожидаемый результат:

"ACOD"  "BC.FF" "00350" "AMG"   "10502" "     " "                    "  "     " "     " "     " "     " "

Как мы можем удалить эти строки из файла, используя пакетный скрипт?

Я нашел эту команду, но она не удаляет строки

powershell -Command "(gc C:\TEST_AUTO.txt) -replace 'BLOT', 'XXXX' | Out-File myFile.txt"

Спасибо за вашу помощь

Ответы [ 2 ]

0 голосов
/ 25 сентября 2018

Было бы лучше использовать команду FindStr, на что намекает aschipfl :

FindStr /V "^\"BLOT\" ^\"VARC\"" "C:\TEST_AUTO.txt">"myfile.txt"

Если вы предпочитаете пакетный файл, опция PowerShell:

PowerShell "GC 'C:\TEST_AUTO.txt'|?{$_ -NotMatch '^\"BLOT\"|^\"VARC\"'}|SC 'myfile.txt'"
0 голосов
/ 25 сентября 2018

Проблема устранена с помощью следующего:

НАЙТИ / V "BLOT" C: \ TEST_AUTO.txt> result.txt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...