我使用以下代码: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 留下空行。