如何使用批处理脚本删除文件中的用户定义行

时间:2014-10-07 04:49:46

标签: file batch-file notepad++ notepad batch-rename

我想使用批处理脚本删除文件中的特定行。

下面'我的场景,例如我有一个名为" 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列的逻辑。

1 个答案:

答案 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中应该相同,这样批处理文件可能会覆盖原始文件

将批处理文件放在与文本文件

相同的目录中