Как удалить пользовательскую строку в файле, используя пакетный скрипт
Я хотел бы удалить конкретную строку в файле, используя пакетный скрипт.
Вот мой сценарий. Например, у меня есть файл.txt с именем "Files.txt".
Когда вы открываете Files.txt. он содержит список файлов. Например:
Name Sample1.txt Sample2.txt
Age Age1.txt Age2.txt
Когда вы открываете Sample1.txt, вот пример содержимого:
SET AAAAA
GET BBBBB
MOV CCCCC
COP DDDDD
Теперь я хотел бы, чтобы у пользователя была опция, какую часть строки он хотел бы удалить в файле Sample1.txt. Например:
Enter the line/s you want to remove (separated by comma): SET,MOV
После этого содержимое файла Sample.txt будет:
GET BBBBB
COP DDDDD
По сути, если мы вызываем Files.txt, столбцы 2 и 3 будут сравниваться.
for /f "tokens=2,3" %%a in ('type c:\sample\files.txt') do (
echo Comparing Column 2: %%a Column 3: %%b
rem Logic for comparison goes here
Теперь, перед совместным отображением, я хочу, чтобы у пользователя была возможность удалить строки в файле, которые он не хочет включать в сравнение.
Обратите внимание, что у меня уже есть логика для сравнения столбца 2 и 3.
1 ответ
Удалить строку сценария
@echo off
For /f "tockens=1-2 delims= " %%a in (nameoffile.txt) do (
Set /p line= enter line to remove :
If not "%%a"=="!line!" (
Echo >nameoffile.txt
Echo %%a %%b >> nameoffile.txt
)
)
Nameoffle должен быть одинаковым в наборе множеств для цикла for и echo в операторе if, чтобы пакетный файл мог перезаписать исходный файл
Поместите пакетный файл в тот же каталог, что и текстовый файл.