其实我已经知道怎么保留包含特定字符的整行 把其他不包含这个字符的行删除 如下:
@echo off
findstr "@" "名字.txt" >>tmp.tmp
type tmp.tmp>test.txt
del/q/f tmp.tmp
pause
但是我现在想把包含@字符的整行删除留下的都是不包含@字符的行 怎么弄呢?非常感谢
第1个回答 2015-05-10
@echo off
setlocal enabledelayedexpansion
set ctr=0
for /f ^delims^=^@^ ^tokens^=^*^ ^eol^= %%a in (名字.txt) do (
set /a ctr+=1
set ln%ctr%=%%a
set tln%ctr%=!ln%ctr%:@=!
if "!ln%ctr%!"=="!tln%ctr%!" (
echo !ln%ctr%!>>tset.txt
) else (
rem nothing
)
)
setlocal enabledelayedexpansion
set ctr=0
for /f ^delims^=^@^ ^tokens^=^*^ ^eol^= %%a in (名字.txt) do (
set /a ctr+=1
set ln%ctr%=%%a
set tln%ctr%=!ln%ctr%:@=!
if "!ln%ctr%!"=="!tln%ctr%!" (
echo !ln%ctr%!>>tset.txt
) else (
rem nothing
)
)
缺点:名字.txt中不能含有英文感叹号。否则感叹号会被删除。
第2个回答 推荐于2017-11-27
findstr /v "@" "名字.txt">>tmp.tmp本回答被提问者采纳