-2

Следующий код, который я использую: type C:\users\Public\Temp\%DB%.db | findstr /v /c:"%Remove%" >>newDB.txt хорошо работает при удалении строк, однако оставляет строку с пробелом, а не удаляет ее все вместе. Как я могу избежать этого? Вот пример файла:

#ITCMDDatabaseFile# 
set $value=1#set user=J#set pass=1234# 
set $value=2#set user=L#set pass=1234#

Редактировать: %remove% устанавливается на одну из двух нижних строк с циклом for %% A. Для примера, мы set $value=1#set user=J#set pass=1234#

1 ответ1

1

Закончилось тем, что нужно разделить шаги так:

    echo. 2>new.txt >nul
    type origfile.txt | findstr /v /c:"Line-I-Want-To-Remove" >>new.txt
    type newDB.txt | findstr /v /r /c:"^$" /c:"^\ *$"  >new2.txt
    type new2.txt >origfile.txt

Я думаю, что из-за того, что я был в цикле for, пустая строка удаления не работала, однако я все еще не пользователь, почему findstr оставил пустые строки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .