我想使用批处理脚本删除文件中的特定行。
下面'我的场景,例如我有一个名为" Files.txt"的.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
现在,在comaparing之前,我希望用户可以选择删除他不希望包含在比较中的文件中的行。
请注意,我已经拥有比较第2列和第3列的逻辑。
答案 0 :(得分:0)
删除行脚本
@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循环中的set collection和if语句中的echo中应该相同,这样批处理文件可能会覆盖原始文件
将批处理文件放在与文本文件
相同的目录中