从批处理文件中删除行的代码留下空行

从批处理文件中删除行的代码留下空行

我使用以下代码: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%设置为底部两行之一,带有 %%A 循环。为了举例说明,我们 set $value=1#set user=J#set pass=1234#

答案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 留下空行。

相关内容